【发布时间】:2020-11-09 17:54:04
【问题描述】:
我正在尝试使用 Haskell 练习声明式编程,但我对交互函数感到有些困惑。
我可以从它的类型签名中看到它一次对整个字符串进行操作:
interact :: (String -> String) -> IO ()
多行输入的字符串值是多少?我假设它是一个带有换行符的单个字符串?
对于 Haskell 程序 Main.hs
module Main where
main :: IO ()
main = interact( ... )
还有一个输入文件input.txt
5 6 7
3 6 10
如果我像这样运行编译后的程序:
$ Main < input.txt
交互使用的字符串是:
5 6 7\n3 6 10
【问题讨论】:
-
它将传递一个字符串
"5 6 7\n3 6 10\n"作为参数。所以是的,您可以使用lines将其转换为Strings 的列表。
标签: haskell functional-programming interactive