2011-09-22 38 views
1

我是哈斯克爾的新手。我想知道如果我可以使用map和concat來做以下事情嗎?哈斯克爾列表理解地圖

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

No我的哈斯克爾experiemnts在一些excercis看到這個問題上某處哈斯克爾 – rightskewed

回答

5

是:

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]