在inseriting到列表后保持String属性

问题描述 投票:1回答:1

我正在做一个项目,我需要识别特定的字符串并将它们添加到列表中。我使用这种方法将它们插入特定位置:

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],没有引号。

string list prolog swi-prolog
1个回答
1
投票

简单的例子,因为你没有说明你是如何创建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,但你可能会。

© www.soinside.com 2019 - 2024. All rights reserved.