ACMのためのトレーニング

H初体験。

すごいとこ。その1

これは関数です。
あれは関数の関数です。つまり関数をとって関数の関数を返す関数です。
あれは関数ですか。はい、そうです。関数のリストをとって関数のリストと関数との組のリストを返す関数です。
では、これは3つの引数をもつ関数ですか。いいえ、違います。これは関数をとって関数をとって関数をとって関数を返す関数を返す関数を返す関数です。

関数ベース。

その2。

自然数とは[1..]です。
奇数とは自然数のうち2で割り切れないものです。
偶数は自然数の各要素に(を2倍する)を作用させれば作れます。

'エラストテネス篩う'とは、ある数列から

  • 先頭の数と、
  • その数列からその先頭の数の倍数を除いた数列を'エラストテネス篩った'数列と

をつないだ数列を作ることです。
数列[2..]を'エラストテネス篩った'ものたちを素数といいます。

強力なリスト処理。虫歯になりそうな甘い文法。遅延評価。

強烈な印象だった。Haskellすごい。