我在阅读“功能编程第一版简介”。 我来约规则翻译理解为,`[e |如何? x < - xs; y < - ys; ...] = concat [[e | y < - ys; ...] x < - xs]`
[e | x <- xs; y <- ys; ...] = concat[[e | y <- ys; ...] | x <- xs]
我不明白这里CONCAT。 concat
需要多个列表,但在这里我只看到一个。
我读[[e | y <- ys; ...] | x <- xs]
作为
for(x in xs){
for(y in ys){
someList.push(e)
}
}
也许我读错了或|
这里拥有一些特殊的意义。
请帮忙。
'的concat :: [[α]] - >并[a]'。 'concat [[e | y < - ys; ...] x < - xs]'---在这里你得到一个列表清单,然后展开到一个平面列表。 – zerkms