|
|
1
12
你在这里混淆了两个问题。我不能因此责备你,因为关于Haskell的许多文献也将这两种观点混为一谈。但类型化IO是Haskell方法的魔力所在。IO类型形成monad的事实并不是那么重要。这意味着它可以与其他类型共享库函数,而不是自己重新实现它们。
monad抽象在动态类型语言中并不能很好地工作。当然,他们可以给你类似的
但另一部分,类型化IO,可能会集成到动态语言中。显然,它将成为运行时标记的IO,而不是类型化的IO。但是,必须构建语言的所有内容来支持它。程序执行的入口点必须指定为IO值,而不是像大多数动态语言选择的那样,只执行文件中的每一行。然后,您必须使用组合符或语法来组合IO值,如Haskell中所示。最后,你必须忍受用户声称这种语言太难使用,因为它与他们习惯的语言不一样。 真的,这是最后一个杀手。 |