Prolog:将术语转换为字符串?
我有一个 Prolog 程序,它生成这种形式的项:
:-op(803, xfy, →).
connect(X, Y, Result):-
Result = (X → Y).
如果我现在调用 connect(a,b,R),我的结果是 R = (a→b)。
他们是否可以转换项就像 (a→b) 变成 Prolog 中的字符串?
背景:我想在 Python 中处理结果。但是如果我用 swiplserver 或 pyswip 传输它,我会得到这种终端:→(a, b)
。我希望通过这样的类型转换来解决这个问题。
I have a Prolog program, which generates terms of this form:
:-op(803, xfy, →).
connect(X, Y, Result):-
Result = (X → Y).
if I now call connect(a,b,R) my result is R = (a→b).
Is their a possibility to convert terms like (a→b) into a string within Prolog?
Background: I want to work with the results in Python. But if I transfer it with swiplserver or pyswip I get termini of this kind: →(a, b)
. My hope is to solve that problem with such a typecast.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 SWI-Prolog 中,您可以使用谓词 term_string/2如下:
或者,您也可以使用 term_to_atom/2 或 format/3:
In SWI-Prolog, you can use predicate term_string/2 as follows:
Alternatively, you can also use term_to_atom/2 or format/3: