小编ale*_*ell的帖子

为什么我们需要IO?

在"解决尴尬的小队:Haskell中的monadic输入/输出,并发,异常和外语调用"中,SPJ指出

"也许函数程序可以是将输入字符串映射到输出字符串的函数:

main :: String - > String

现在用(gasp!)C编写的'包装器'程序可以从某处获取输入字符串..将函数应用于它,并将结果存储在某处......"

然后他继续说这在包装器中定位"罪恶",并且这种方法的问题在于一个罪导致另一个(例如多个输入,删除文件,打开套接字等).

这对我来说似乎很奇怪.我本以为Haskell在以这种方式接近时会是最强大的,甚至可能是最有用的.也就是说,输入是位于文件中的字符串,并且输出是新文件中的新字符串.如果输入字符串是与数据连接的某个数学表达式,并且输出字符串是(非Haskell)代码,那么您可以完成Get Things.换句话说,为什么不总是将Haskell程序视为翻译?(或者作为编译器,但作为翻译器,您可以将真正的IO混合到最终的可执行文件中.)

无论作为一般策略的智慧如何(我欣赏我们可能想要完成的一些事情可能不是从数学开始),我真正的问题是:如果这确实是方法,我们可以避免IO类型吗?我们需要其他语言的包装器吗?有人真的这样做吗?

io haskell translate

0
推荐指数
1
解决办法
136
查看次数

标签 统计

haskell ×1

io ×1

translate ×1