【发布时间】:2017-06-06 19:29:42
【问题描述】:
当我把它放在 python 中时
from pyswip import *
read = Functor("read",1)
X=Variable()
call(read(X))
响应是一个 prolog shell
|:
如何制作 raw_input 而不是 prolog shell?
谢谢
【问题讨论】:
标签: python prolog ffi swi-prolog
当我把它放在 python 中时
from pyswip import *
read = Functor("read",1)
X=Variable()
call(read(X))
响应是一个 prolog shell
|:
如何制作 raw_input 而不是 prolog shell?
谢谢
【问题讨论】:
标签: python prolog ffi swi-prolog
为此,您需要注册一个新的外部函数并从 prolog 代码中调用它。这个 python3 示例可能会对您有所帮助 (with this python3 version pyswip):
from pyswip import Prolog, registerForeign, Atom
def py_read(*a):
a[0].unify(input("PyInput:"))
return True
registerForeign(py_read, arity=1)
result = list(Prolog.query('py_read(X)'))
print(result[0]['X'])
【讨论】: