rig*_*wed 1 haskell concat list-comprehension map
我是哈斯克尔的新手.我想知道如果我只使用map和concat可以做以下事情?
[ (x,y+z) | x<-[1..10], y<-[1..x], z<-[1..y] ]
Run Code Online (Sandbox Code Playgroud)
是:
concat $ concat $ map (\x -> map (\y -> map (\z -> (x,y+z)) [1..y]) [1..x]) [1..10]
Run Code Online (Sandbox Code Playgroud)
虽然官方翻译使用concatMap:
concatMap (\x -> concatMap (\y -> concatMap (\z -> [(x,y+z)]) [1..y]) [1..x]) [1..10]
Run Code Online (Sandbox Code Playgroud)