parse negative numbers properly, handle length errors and failures properly.

This commit is contained in:
Mark Thom
2018-05-12 18:23:57 -06:00
parent 5690409534
commit b0bdf50a78
5 changed files with 51 additions and 21 deletions

View File

@@ -1,5 +1,7 @@
:- module(lists, [member/2, select/3, append/3, is_list/1, memberchk/2, reverse/2, maplist/2,
maplist/3, maplist/4, maplist/5, maplist/6, maplist/7, maplist/8, maplist/9]).
:- module(lists, [member/2, select/3, append/3, memberchk/2,
reverse/2, maplist/2, maplist/3, maplist/4,
maplist/5, maplist/6, maplist/7, maplist/8,
maplist/9]).
member(X, [X|_]).
member(X, [_|Xs]) :- member(X, Xs).
@@ -10,10 +12,6 @@ select(X, [Y|Xs], [Y|Ys]) :- select(X, Xs, Ys).
append([], R, R).
append([X|L], R, [X|S]) :- append(L, R, S).
is_list(X) :- var(X), !, false.
is_list([]).
is_list([_|T]) :- is_list(T).
memberchk(X, Xs) :- member(X, Xs), !.
reverse(Xs, Ys) :- reverse(Xs, [], Ys).