【问题标题】:PySwip read(X) function on pythonpython上的PySwip read(X)函数
【发布时间】: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


    【解决方案1】:

    为此,您需要注册一个新的外部函数并从 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'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-15
      • 2019-01-02
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多