gpt4 book ai didi

python - 从 python 调用序言谓词

转载 作者:太空狗 更新时间:2023-10-30 01:03:40 25 4
gpt4 key购买 nike

我有一些 .pl 文件,我想从 python 脚本中调用其中声明的谓词。我该怎么做?

例如,test.pl

rD( [], Ans, Ans ).
rD( [X|Xs], Ans, Acc ) :-
member( X, Acc ),
rD( Xs, Ans, Acc ), !.
rD( [X|Xs], Ans, Acc ) :-
\+member( X, Acc ),
append( Acc, [X], AccNew ),
rD( Xs, Ans, AccNew ), !.

工作方式

?- rD( [1,2,3,4,5,4], X ).
X = [1, 2, 3, 4, 5].

我想从 python 脚本中以某种方式调用 rD 并在结果变量中得到答案

result
[1, 2, 3, 4, 5]

ps:这只是一个例子,我不想重写我现在的Prolog程序。

最佳答案

并不是说我有直接的经验,但有一个名为 PySWIP 的项目它提供了 Python 和 SWI-Prolog 之间的桥梁。 wiki托管在 Google Code 的项目页面上持有 installation instructions还有一些usage examples .

编辑(2019 年 7 月 5 日)

PySWIP 现在似乎在 Github 上维护, 有自己的 installation instructions . TLDR:对于 Python 2 和 3,安装 SWI-Prolog 和 pip install pyswip 应该可以完成这项工作。

关于python - 从 python 调用序言谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6103461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com