Haskell 列表理解映射

标签 haskell map list-comprehension concat

我是 haskell 的新手。我想知道我是否可以只使用 map 和 concat 来做以下事情?

                 [ (x,y+z) | x<-[1..10], y<-[1..x], z<-[1..y] ]

最佳答案

是的:

concat $ concat $ map (\x -> map (\y -> map (\z -> (x,y+z)) [1..y]) [1..x]) [1..10]

尽管 official translation使用 concatMap:

concatMap (\x -> concatMap (\y -> concatMap (\z -> [(x,y+z)]) [1..y]) [1..x]) [1..10]

关于Haskell 列表理解映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7512083/

相关文章:

haskell - 需要帮助将 prop 写入 blak::Sudoku → [Pos] (Haskell)

java - Java 的泛型问题

c++ - 为什么 map 上的 std::for_each 会调用复制构造函数?

java - 是否有一个 Map 实现将内容持久保存到数据库而不是内存?

java - Haskell 与 JVM 性能对比

Haskell 检查 monad 中的值是否存在

haskell - 统一镜头的目的是什么?

python - 将两个整数列表组合成一个字符串列表

Haskell concat 在列表理解中复制