2014年11月29日土曜日

scala スケーラブルプログラミング P306

mapとflatmapについての説明が出ていた。

List.range(1,5) flatmap (
      i=> List.range(1,i) map (j => (i,j))
     )
これが、どうなるか、たどってみた。
List.range(1,5)はList(1,2,3,4)
i=1であれば List.range(1,1) map (j => (1,j))は なし?
i=2               List.range(1,2) map (j => (2,j))は (2,1)
i=3               List.range(1,3) map (j => (3,j))は (3,1),(3,2)
i=4               List.range(1,4) map (j => (4,j)) は (4,1),(4,2),(4,3)
これらがflatmapで連結されて、List((2,1),(3,1),(3,2),(4,1),(4,2),(4,3))
となるようだ。



0 件のコメント:

コメントを投稿