python 上的 PySwip read(X) 函数

PySwip read(X) function on python

当我把这个放在 python

from pyswip import *
read = Functor("read",1)
X=Variable()
call(read(X))

响应是序言 shell

|:

如何制作 raw_input 而不是序言 shell?

谢谢

为此,您需要注册一个新的外部函数并从序言代码中调用它。这个 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'])