Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要(用于设计选择)获得尊重以下模式的列表:
Uses = ['foo\/1', 'foobar\/2'].
我能够建立名称/号码模式:
all((P\/A), (rule(X, Ux, _, Module), member(U, Ux), U = (P/A)), Uses).
其中 rule 是一个内部事实,Ux 是一个列表。
我可以使用“/”快捷方式轻松转义斜线,但是将 (P/A) 放在引号之间呢?
怎么做?请帮我。
如果你想得到'foo/1',你可以很容易地使用atomic_list_concat/2谓词如下:
'foo/1'
atomic_list_concat/2
Functor=foo, Arity=1, atomic_list_concat([Functor, '/', Arity], Output).
这样,Output变量将绑定到'foo/1'术语。
Output
只需将它们放在 3 个顶点之间:
?- A=foo, B=1, writeln('''A/B'''). 'A/B' A = foo, B = 1