【发布时间】:2017-07-30 23:36:57
【问题描述】:
我现在正在看 M.Odersky 书中的例子
List.range(1, 5) flatMap (
i => List.range(1, i) map (j => (i, j))
)
好的,首先我们创建1,2,3,4 列表,然后接下来会发生什么?什么是
i => List.range(1, i)
在做什么?创造
(1,1)
(1,2)
(1,3)
(1,4)
是还是不是?
如果我试图避开 flatMap
scala> List.range(1,5) (i => List.range(1,i) map (j => (i, j)))
<console>:11: error: missing parameter type
List.range(1,5) (i => List.range(1,i) map (j => (i, j)))
为什么?
【问题讨论】:
-
它是
(i => ((List.range(1, i)) map (j => (i, j))))。所以 no,而表达式i => List.range(1, i)不是完整代码的一部分 -
这个问题与“运算符优先级”无关。为什么选择这个标题?
-
@jwvh 我已经改了标题,我想了解代码步骤。