2017-06-06 150 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