圏論において、Catamorphism(ギリシャ語: κατά = "下方へ" または "~に従って"; μορφή = "形式" または "形")は、始代数から他の代数への唯一の準同型射を意味する。この概念は関数型プログラミングへfoldとして応用されている。Anamorphismはこの双対となる概念である。Hylomorphismも参照。Catamorphismは関数型プログラミングにおいてリストのfoldと呼ばれる操作を、始代数として表現できる任意の代数的データ型に一般化したものである。プログラミングにおいてCatamorphismの概念を導入した最初の出版物の一つは、“Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire”, by Erik Meijer "et al."で、Bird-Meertens formalismの文脈であった。双対であるAnamorphismは、"unfold"の一般化である。次の例はHaskellによるもの。ここで、codice_1 はデータ型codice_2 の"catamorphism"で、 codice_3 とcodice_4 は"代数"と呼ばれる。圏論は、全ての始データ型を記述する一般的な定義を与えるために必要な概念を提供する(関数型プログラミングにおける関数を集合の圏や関連した具体的な圏の射と同一視することによって)。これはGrant Malcolmによって行われた。.上記の例に戻り、codice_5にcodice_6を対応させる関手"F"を考える。この特定の場合に対応するF代数は組(codice_5,
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。