prolog,如何正确使用转义序列

时间:2013-06-27 17:15:04

标签: prolog yap

我需要(用于设计选择)获得一个尊重以下模式的列表:

Uses = ['foo\/1', 'foobar\/2'].

我能够建立起来     名称/数字模式 这样做的:

all((P\/A), (rule(X, Ux, _, Module), member(U, Ux), U = (P/A)), Uses).

其中规则是内部事实,Ux是列表。

我可以使用'/'快捷键轻松逃避斜线,但是如何在引号之间放置(P / A)?

怎么做?请帮帮我。

2 个答案:

答案 0 :(得分:0)

将它们放在3个顶点之间:

?- A=foo, B=1, writeln('''A/B''').
'A/B'
A = foo,
B = 1

答案 1 :(得分:0)

如果您想获得'foo/1',可以轻松使用atomic_list_concat/2谓词,如下所示:

Functor=foo,
Arity=1,
atomic_list_concat([Functor, '/', Arity], Output).

这样Output变量将绑定到'foo/1'个字词。