有人知道我如何在haskell中用两个变量来理解列表吗?
例如。
[ x * y | x <- [1..10] y <- [1..10]]
它应该会导致
[1,4,9,16,25,36,49,64,81,100]
但实际上它会在ghci中产生
<interactive>:13:23-24: error:
parse error on input ‘<-’
Perhaps this statement should be within a 'do' block?
发布于 2018-05-21 07:01:21
您需要将这两个范围拉链到一起:
[ x * y | (x, y) <- zip [1..10] [1..10] ]
您可以有两个独立的迭代器,用逗号分隔。
[ x * y | x <- [1..10], y <-[1..10] ]
但是这会计算两个集合的笛卡儿积,从而得到一个完整的乘法表,而不是一个正方形的列表。
https://stackoverflow.com/questions/50451401
复制相似问题