小编Rav*_*she的帖子

Monads 是一种用于排序计算的机制,下面的列表仍然是一个 monad,尽管它们以随机顺序打印 Scala

for {
    i <- 1 to 5
  } yield Future(println(i))
Run Code Online (Sandbox Code Playgroud)

脱糖:

List(1,2,3,4,5).map {i => Future(println(i))}
Run Code Online (Sandbox Code Playgroud)

上面的代码以随机顺序打印数字。

现在,如果我们看到 Monad 的多个定义: a) Monad 是一个对象的包装器 b) Monad 是一种排序计算的机制

我试图回答的问题是,不应该在 List monad 上映射操作等待列表中的第一个元素被打印出来,然后才去计算第二个元素而不管 Future 是什么?

抱歉,这可能很简单,而且我把它复杂化了,但我很难找到简单的推理。答案将不胜感激:)

monads scala future sequential for-comprehension

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

标签 统计

for-comprehension ×1

future ×1

monads ×1

scala ×1

sequential ×1