我想以透明的方式并行评估任何函数的参数(没有任何源级别更改)。
例如 -
c = f(a, b)
应该导致:
a
并被b
并行评估,然后调用f
.
一种方法是将上述表达式转换为:
a' = future { a }
b' = future { b }
f' = lift f
(这样f: a -> b -> c
就变成了f: Future<a> -> Future<b> -> Future<c>
)这样c' = f'(a', b')
这可以在scala中做到吗?