perl vs Haskell
問題
各辺が10以下の整数で、辺の合計が24の直角三角形の、各辺の長さを求める。
http://learnyouahaskell.com/starting-out#im-a-list-comprehension
perlの負けっぽい。
1 use strict; 2 use Data::Dumper; 3 4 my @data; 5 6 for my $i (1..10) { 7 for my $j (1..$i) { 8 for my $k (1..$j) { 9 push (@data, +[$i, $j, $k]); 10 } 11 } 12 } 13 14 my @ret = grep { $_->[0] + $_->[1] + $_->[2] == 24 } 15 grep { $_->[0]**2 == $_->[1]**2 + $_->[2]**2 } @data; 16 17 print Dumper(\@ret);
L6..L12の良いコーディングが思いつかなかった。
対象となる集合を作るところで、perlの負け。