add is_list
This commit is contained in:
@@ -138,6 +138,7 @@ The following predicates are built-in to rusty-wam.
|
|||||||
* `functor/3`
|
* `functor/3`
|
||||||
* `ground/1`
|
* `ground/1`
|
||||||
* `integer/1`
|
* `integer/1`
|
||||||
|
* `is_list/1`
|
||||||
* `length/2`
|
* `length/2`
|
||||||
* `maplist/1..8`
|
* `maplist/1..8`
|
||||||
* `member/2`
|
* `member/2`
|
||||||
|
|||||||
@@ -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/3, maplist/4, maplist/5, maplist/6, maplist/7, maplist/8,
|
||||||
maplist/9]).
|
maplist/9]).
|
||||||
|
|
||||||
@@ -11,6 +11,10 @@ select(X, [Y|Xs], [Y|Ys]) :- select(X, Xs, Ys).
|
|||||||
append([], R, R).
|
append([], R, R).
|
||||||
append([X|L], R, [X|S]) :- append(L, R, S).
|
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), !.
|
memberchk(X, Xs) :- member(X, Xs), !.
|
||||||
|
|
||||||
reverse(Xs, Ys) :- var(Ys), !, reverse(Xs, [], Ys).
|
reverse(Xs, Ys) :- var(Ys), !, reverse(Xs, [], Ys).
|
||||||
|
|||||||
Reference in New Issue
Block a user