add is_list

This commit is contained in:
Mark Thom
2018-03-09 19:27:22 -07:00
parent b5b44fe5a2
commit 2cc5367c52
2 changed files with 6 additions and 1 deletions

View File

@@ -138,6 +138,7 @@ The following predicates are built-in to rusty-wam.
* `functor/3`
* `ground/1`
* `integer/1`
* `is_list/1`
* `length/2`
* `maplist/1..8`
* `member/2`

View File

@@ -1,4 +1,4 @@
:- module(lists, [member/2, select/3, append/3, memberchk/2, reverse/2, maplist/2,
:- 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]).
@@ -11,6 +11,10 @@ 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) :- var(Ys), !, reverse(Xs, [], Ys).