小编sve*_*ten的帖子

如何在swi-prolog上调用谓词split_string?

我试图使用这里的文档中所谓的内置谓词split_string/4:http://www.swi-prolog.org/pldoc/man?predicate = split_string/4

但是,当我尝试使用它时,如示例中所示,我得到这样的结果:

?- split_string("a.b.c.d", ".", "", L).
ERROR: toplevel: Undefined procedure: split_string/4 (DWIM could not correct goal)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我应该先加载一些库吗?

prolog swi-prolog

4
推荐指数
1
解决办法
965
查看次数

Haskell中的交互式进程通信

我正在尝试编写一个Haskell程序,该程序执行交互式程序(也用Haskell编写),发送和接收文本行.交互式程序从stdIn读取并使用标准Haskell库写入stdOut.

然而,这被证明比我预期的更复杂,可能是由于Haskell懒惰或其他一些神秘的事情发生在背景上.该程序显然陷入僵局,并且没有收到预期会收到的文本行.如果交互式程序由于发送文本行而终止,它确实接收文本,但我需要程序继续运行并接收更多数据(由于某种原因,它被称为交互式).有时它只在我杀​​死接收消息的程序后打印预期的输出.代码如下所示:

main = do
    (hin,hout,herr,pl) <- (runInteractiveCommand "./PlayerMain")
    hSetBinaryMode hin False
    hSetBinaryMode hout False
    hSetBuffering hin LineBuffering
    hSetBuffering hout NoBuffering
    hPutStr hin "start\n"
    out <- hGetLine hout
    putStrLn out
Run Code Online (Sandbox Code Playgroud)

我已经尝试用严格的Data.Text替换惰性字符串,但行为是相同的.有光吗?

haskell ipc

2
推荐指数
1
解决办法
387
查看次数

标签 统计

haskell ×1

ipc ×1

prolog ×1

swi-prolog ×1