Hatena::Grouperlang

msyktの日記

 | 

2013-12-14

3.6 リスト内包表記

19:42

「A+B+CがN以下で、かつA*A+B*B=C*CであるようなA,B,Cをぞれぞれ1からNまでの間からすべて見つける」となる。

A、B、Cのすべての組み合わせを生成することが面白いのだが、どういう順序で生成されるのか気になったので、各値を生成するところだけ抜き出して確認してみた。

Eshell V5.10.3  (abort with ^G)
1> [{A, B, C} || A <- lists:seq(1,2), B <- lists:seq(1,2), C <- lists:seq(1,2)].
[{1,1,1},
 {1,1,2},
 {1,2,1},
 {1,2,2},
 {2,1,1},
 {2,1,2},
 {2,2,1},
 {2,2,2}]

C→B→Aの順なので、外側から生成されていくものらしい。

 |