関数型言語Part5at TECH関数型言語Part5 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト837:デフォルトの名無しさん 12/03/20 00:15:14.64 もう少し言えば チャーチ数は >>836 のリンク先のように自然数の「構造」を関数で表現したものだ 例えば自然数の 2 は、何かに関数を2回適用するという構造として表現している しかし、他の関数型言語のことは知らんが、 少なくとも Haskell では関数を使って何かの「構造」を表現する事はできない Haskell の関数は、あくまで何かを計算する事しかできない 関数では不可能な構造を表現するために代数データ型が存在している 例えば何かに関数を2回適用したのか、それとも3回適用したのかを知るには、 その関数適用の構造ではなく、適用した結果に対して自然数の2や3を対応付けるしかない もちろん、2回適用したものと3回適用したものとの和を計算するのも、 その関数適用の構造そのもので和を計算するのではなく、 関数を適用した結果が対応する「値」に対して和を計算するしかない 関数を適用した結果を代数データ型というある種の構造を表現する値に対応付けることはできる その方法で構造を自然数に対応付けるのが >>836 の例なのだが、 これは関数で自然数の構造を表現しているのではなく、 あくまで代数データ型で自然数の構造を表現しているのだから、 もはやチャーチ数とは呼べない(構造の形自体は似たように作れるが) よって、チャーチ数の表現およびその上での演算ができるのが最低限と言われると、 少なくとも Haskell は関数型ではなくなってしまうと私は思う 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch