我正在做一个项目,我需要识别特定的字符串并将它们添加到列表中。我使用这种方法将它们插入特定位置:
insertAt(E,N,Xs,Ys) :-
same_length([E|Xs],Ys),
append(Before,Xs0,Xs),
length(Before,N),
append(Before,[E|Xs0],Ys)
问题是,当我插入任何字符串例如'4X'时,在我的列表中显示4X,作为数字和变量。如何在插入后保留单引号?这条线给我带来了问题:
insertAt('>500',0,ListA,ListB),writeln(ListB).
当列表显示在提示符中时,它看起来像[> 500],没有引号。
简单的例子,因为你没有说明你是如何创建4X的
test :-
append(["4x"],[],New),
write(New).
示例运行:
?- test.
[4x]
true.
在评论更新后。
有没有办法在保持报价时写?
?- print('4x').
'4x'
true.
?- print([a,b,'4X',d]).
[a,b,'4X',d]
true.
值得注意的是:portray/1
我从未使用过portray/1
,但你可能会。