Сохранить свойство String после вставки в список - PullRequest
1 голос
/ 06 марта 2019

Я делаю проект, в котором мне нужно распознать определенные строки и добавить их в список.Я использую этот метод, чтобы вставить их в определенную позицию:

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).

Когда список отображается в Promt, он выглядит как [> 500], без кавычек.

1 Ответ

1 голос
/ 06 марта 2019

Простой пример, поскольку вы не указали, как вы создаете 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 но вы могли бы.

...