xKa*_*elX 4 list prolog insert-update
我必须创建n个元素的列表,例如,
do_list(5,L1).
Run Code Online (Sandbox Code Playgroud)
应该回来,
L1=[1,2,3,4,5].
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的,但它不起作用.
do_list(X,L1):- X1 is X-1, do_list(X1,[X1|L1]).
do_list(0,[]).
Run Code Online (Sandbox Code Playgroud)
如果要创建从1到N的连续数字列表,可以使用内置谓词findall/3,between/3这样:
do_list(N, L):-
findall(Num, between(1, N, Num), L).
?- do_list(5,L).
L = [1, 2, 3, 4, 5].
Run Code Online (Sandbox Code Playgroud)
SWI还有另一个内置功能就是这样,numlist/3:
?- numlist(1,5,L).
L = [1, 2, 3, 4, 5].
Run Code Online (Sandbox Code Playgroud)