为什么以及如何具体地说Scala Future不是Monad; 有人请将它与Monad的东西比较,比如选项吗?
我问的原因是Daniel Westheide的Scala新手指南第8部分:欢迎来到未来,我问Scala Future是否是Monad,作者回答说它不是,它已经脱离了基础.我来这里要求澄清.
我当时正在读《Scala with Cats》一书,其中有这样一句话,我将在这里引用:
\n\n\n请注意,Scala\xe2\x80\x99s Futures 是纯函数式编程的一个很好的例子,因为它们是引用透明的。
\n
另外,还提供了一个示例,如下所示:
\nval future1 = {\n // Initialize Random with a fixed seed:\n val r = new Random(0L)\n // nextInt has the side-effect of moving to\n // the next random number in the sequence:\n val x = Future(r.nextInt)\n for {\n a <- x\n b <- x\n } yield (a, b)\n}\nval future2 = {\n val r = new Random(0L)\n for {\n a <- Future(r.nextInt)\n b <- Future(r.nextInt)\n } yield (a, b)\n}\nval …Run Code Online (Sandbox Code Playgroud)