获取序言中的所有列表元素

Get all list elements in prolog

我需要使用 prolog 获取列表外的所有列表元素。 ['1','2','3',a,b,c] 成为 X='1','2','3',a,b,c 我需要如上所示的结果 X。

是否可以得到结果?

这将按字面显示您所要求的内容(我假设您对结果感兴趣只是出于显示目的)。

print_list(L) :-
    write('X='),
    print_list_aux(L), !.

print_list_aux([H1,H2|T]) :-
    print(H1),
    write(','),
    print_list_aux([H2|T]).
print_list_aux([X]) :-
    print(X),
    nl.
print_list_aux([]) :- nl.

示例:

?- print_list(['1', '2', a, b]).
X='1','2',a,b
true.

?- 

如果您使用 write/1 而不是 print/1,您将消除输出中数字的引号,因此它将是:X=1,2,a,b.