当我把它放在python中时
from pyswip import *
read = Functor("read",1)
X=Variable()
call(read(X))
响应是一个prolog shell
|:
如何制作raw_input而不是prolog shell?
由于
答案 0 :(得分:0)
为此,您需要注册一个新的外部函数并从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'])