我需要(用于设计选择)获得一个尊重以下模式的列表:
Uses = ['foo\/1', 'foobar\/2'].
我能够建立起来 名称/数字模式 这样做的:
all((P\/A), (rule(X, Ux, _, Module), member(U, Ux), U = (P/A)), Uses).
其中规则是内部事实,Ux是列表。
我可以使用'/'快捷键轻松逃避斜线,但是如何在引号之间放置(P / A)?
怎么做?请帮帮我。
答案 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'
个字词。