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 是什么?
抱歉,这可能很简单,而且我把它复杂化了,但我很难找到简单的推理。答案将不胜感激:)