30分プログラム、その56。リストの内包表記 for Scheme。 実際は、40分ちょっとかかってたりする。 内包表記(list comprehension)って? 内包表記がこれであっているのかちょっと自身がないので詳しめに、動作解説をしてみる。 Haskellのやつと動作が違うようならツッコミ希望。 まずは、単純にリストから要素をとってくる場合は次のように書ける。 (list-of x (<- x (iota 10))) ; => (0 1 2 3 4 5 6 7 8 9) またとってきたやつに対していろんな演算を行なうこともできる。 (list-of (* x 2) (<- x (iota 10))) ; => (0 2 4 6 8 10 12 14 16 18) (list-of (+ x 1) (<- x (iota 10))) ; => (1 2 3 4 5 6 7 8 9