2017-06-06 116 views
2

(X)功能,当我把这个在pythonPySwip阅读蟒蛇

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

的响应是一个序言壳

|: 

如何使代替的raw_input的序言的壳呢?

感谢

回答

0

要做到这一点,你需要注册一个新的外交功能,从序言代码中调用它。这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']) 
+0

感谢这个作品完美的我 – guzajj