# HG changeset patch # User Steve Losh # Date 1471995191 0 # Node ID f0f90671d4dcb921de765bb638de3b728cfb3229 # Parent 6ed3375e29210f0959b5cf9215428a814824fb26 Remove useless file diff -r 6ed3375e2921 -r f0f90671d4dc test/99.pl --- a/test/99.pl Tue Aug 23 23:31:13 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ -% 99 Prolog Problems -% from http://www.ic.unicamp.br/~meidanis/courses/mc336/2009s2/prolog/problemas/ -% -% Solutions to at least a few of these, for testing purposes. - -% P01 -my_last(X, [X]). -my_last(X, [_ | T]) :- - my_last(X, T). - -% P02 -my_lastbutone(X, [X, _]). -my_lastbutone(X, [_ | T]) :- - my_lastbutone(X, T). - -% P03 -my_nth(X, [X | _], 1). -my_nth(X, [_ | T], N) :- - M is N - 1, - my_nth(X, T, M). - -% P04 -my_len([], 0). -my_len([_ | T], Length) :- - my_len(T, M), - Length is M + 1. - -my_len_acc([], A, A). -my_len_acc([_ | T], A, Length) :- - B is A + 1, - my_len_acc(T, B, Length). - -my_len2(L, Length) :- - my_len_acc(L, 0, Length). - -% P05 -my_reverse_acc([], Acc, Acc). -my_reverse_acc([X | T], Acc, Reversed) :- - my_reverse_acc(T, [X | Acc], Reversed). - -my_reverse(L, R) :- - my_reverse_acc(L, [], R). - -% P06 -my_palindrome(L) :- - my_reverse(L, L). - -% P07 -my_flatten([], []). - -my_flatten([Atom | Tail], [Atom | FlatTail]) :- - \+ is_list(Atom), - my_flatten(Tail, FlatTail). - -my_flatten([HeadList | Tail], Flattened) :- - is_list(HeadList), - my_flatten(HeadList, FlatHeadList), - my_flatten(Tail, FlatTail), - append(FlatHeadList, FlatTail, Flattened). - -% P08 -my_compress_acc([], A, A). - -my_compress_acc([X | T], [X | Acc], Compressed) :- - my_compress_acc(T, [X | Acc], Compressed). - -my_compress_acc([X | T], [Y | Acc], Compressed) :- - X \= Y, - my_compress_acc(T, [X, Y | Acc], Compressed). - -my_compress([H | T], Compressed) :- - my_compress_acc(T, [H], ReverseCompressed), - my_reverse(ReverseCompressed, Compressed). - -their_compress([],[]). -their_compress([X],[X]). -their_compress([X,X|Xs],Zs) :- compress([X|Xs],Zs). -their_compress([X,Y|Ys],[X|Zs]) :- X \= Y, compress([Y|Ys],Zs). - -% P09 -my_pack([], []). -my_pack([X], [[X]]). - -my_pack([X | Tail], [[X] | ResultTail]) :- - my_pack(Tail, ResultTail), - ResultTail = [[Y | _] | _], - X \= Y. - -my_pack([X | Tail], [[X, X | XS] | ResultTail]) :- - my_pack(Tail, [[X | XS] | ResultTail]). - - - - - - - - - - - - - -their_pack([],[]). -their_pack([X | Tail], [Chunk | PackedTail]) :- - their_transfer(X, [X | Tail], Remaining, Chunk), - their_pack(Remaining, PackedTail). - -% transfer(X,Xs,Ys,Z) Ys is the list that remains from the list Xs -% when all leading copies of X are removed and transfered to Z - -their_transfer(_, [], [], []). - -their_transfer(X, [Y | Ys], [Y | Ys], []) :- - X \= Y. - -their_transfer(X, [X | Xs], Ys, [X | Zs]) :- - their_transfer(X, Xs, Ys, Zs).