このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

簡略オダンゴ図

ラムダバブルを二重丸、三重丸で描くと少し図が簡略になる。そのとき、もとの(カリー化する前の)関数のアリティ(引数の個数)を知りたいなら、丸の数を0, 1, 2, ... と勘定し、それと、上に出ている線の本数を足す。丸の数は0から勘定する、なぜなら一番内側はバブルではなくてオダンゴの輪郭だから。

下に出ている束に含まれる線の数は、(0から勘定した丸の数)+1 = (1から勘定した丸の数) となる。

常にフルカリー化しておく約束だと、上に出る線はないので、

  • アリティ = (0から勘定した丸の数)、
  • (下に出ている線の数) = アリティ+1、
  • 特にアリティ=0 ならば、丸が一重で、下に出ている線は1本。

常にフルカリー化して考える流儀だと、定数はアリティ0、関数はすべて1引数と考えていい。ただし、関数に引数を渡すには、eval/applyを表す「・」と組み合わせる。「定数または1引数関数のみ」と単純化されるのがうれしい。