5

我想在服务器中托管 XSB Prolog。有人可以告诉我程序是什么吗?以下 git 链接解释了如何在服务器上托管 SWIPL,但同样不适用于 XSB https://github.com/SWI-Prolog/swish

非常感谢您的帮助。

4

1 回答 1

2

如果您想在服务器上托管XSB,只需使用子进程来生成XSB

参见XSB 手册

spawn_process(+CmdSpec,-StreamToProc,-StreamFromProc,-ProcStderrStream,ProcId)

产生一个由CmdSpec指定的新进程

XSB子流程的用途之一是创建生成子流程并控制它们的XSB服务器。衍生的子进程可以是另一个XSB进程。以下示例显示了一个XSB进程生成另一个 XSB 进程,向其发送目标以评估并获得结果:

`| ?-` spawn_process([xsb], To, From,Err,_),
     file_write(To,’assert(p(1)).’),
     file_nl(To),
     file_flush(To,_),
     file_write(To,’p(X), writeln(X).’),
     file_nl(To),
     file_flush(To,_),
     file_read_line_atom(From,XX).

`XX = 126`
`yes`
`| ?-`
"Here the parent **XSB** process sends “
`assert(p(1)).`
” and then “
`p(X), writeln(X).`
” to the spawned XSB subprocess."
"The latter evaluates the goal and prints (via “ `writeln(X)` ”) 
to its standard output..."
于 2017-12-24T16:16:41.417 回答