我试图使用这里的文档中所谓的内置谓词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)
我究竟做错了什么?我应该先加载一些库吗?
我正在尝试编写一个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替换惰性字符串,但行为是相同的.有光吗?