【发布时间】:2019-01-27 15:03:15
【问题描述】:
我在学习 Paul Chiusano 和 Runar Bjanarson 所著的“Scala 中的函数式编程”一书(第 7 章 - 纯函数式并行)时遇到了这个函数定义:
def fork[A](a: => Par[A]): Par[A] =
es => es.submit(new Callable[A] {
def call = a(es).get
})
Par[A] 是 type Par[A] = ExecutorService => Future[A] 和 ExecutorService 和 Future 来自 java.util.concurrent 库。 Here 是 Github 上的完整代码。有关java.util.concurrent 文档,请参阅here。
我的问题是提供一个函数作为惰性参数意味着什么?特别是,我可以理解延迟提供计算意味着什么,但我无法理解它在函数的情况下意味着什么?
【问题讨论】:
标签: scala parallel-processing lazy-loading lazy-evaluation