加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

什么是Scala标准API中的IO Haskell Monad等价物?

发布时间:2020-12-16 18:53:44 所属栏目:安全 来源:网络整理
导读:我知道在IO运算符的 Scalaz中有一些几乎完全相同的实现,如putStrLn :: String – IO()和getLine :: IO String但我的意思是关于Scala标准API为什么没有这样的等价物? 我知道Scala不是Haskell的纯语言,并且有副作用,但我认为这种数据类型是如此描述性和有用.
我知道在IO运算符的 Scalaz中有一些几乎完全相同的实现,如putStrLn :: String – > IO()和getLine :: IO String但我的意思是关于Scala标准API为什么没有这样的等价物?
我知道Scala不是Haskell的纯语言,并且有副作用,但我认为这种数据类型是如此描述性和有用.
我不知道Try,Option或者是否可以完成这项工作.

解决方法

Scala具有隐含的环境副作用,就像C?,Java,C,Objective-C,Swift,Pascal,Basic,Perl,PHP,Python,Ruby,ECMAScript等一样.IO没有类型.

有第三方库提供IO类型,但它没有提供与Haskell相同的保证:Haskell只有很少的逃生舱口(unsafePerformIO),在Scala中,几乎所有东西都是逃生舱.

然而,有一些想法,我相信甚至研究Scala中效果系统的原型,Dotty的流线型,更强大和更健全的类型系统可能会成为更好的基础.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读