我已经开始学习Haskell和我有问题,了解清单的名单如何笛卡尔积工作 这里是假设代码 cprod = foldr f [[ ]]
where f xs yss = foldr g [ ] xs
where g x zss = foldr h zss yss
where h ys uss = (x : ys) : uss
究竟我不明白的是最后一个功能
我有以下嵌套循环: for (x in xs) {
for (y in ys) {
# Do something with x and y
}
}
其中我想拉平,所以我想建立两个向量xs和ys的笛卡尔乘积并遍历结果。在Python中,这将是微不足道的: for xy in product(xs, ys):
# x, y = xy[0], xy[1]