Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

2011-10-09から1日間の記事一覧

Catamorphism の他の例

Catamorphismを使って二分木での畳み込みを定義すると比べると関連が見えてくるかも? リストの畳み込み 自己関手Fとして、型Xを1+A*Xへ移すものをとる。1+A*ArrayRef A→ArrayRef A なる以下のF代数が始対象となる。 sub array(;$$) { @_ == 0 ? [] # type 1…

Catamorphismを使って二分木での畳み込みを定義する

高階関数がなす圏上の自己関手Fとして、型Xを A+X*X へ移すものを考える。A+X*X は具体的には、$a∈A 、$x1, $x2∈X としたとき、$a または ($x1, $x2) の形を含むもの。F代数とは、FX→X のような射をいう。例えば、以下のような射A+Int*Int→Int。 sub choose_…