関数型言語Part5
■ このスレッドは過去ログ倉庫に格納されています
0095デフォルトの名無しさん
2011/07/03(日) 02:48:39.07ちょっと書きなおしたが関数の定義がこんなかんじだとする。
f( x, e ) = if( x - e ) x; else 1 + f( x + 1, e );
関数の呼び出しはこんな感じ。
y = f( 3, 5 );
で、関数というのは数だ。
数学表記で y = x + 1 なんかを関数というが正しく処理じゃなくて数なんだ。
関数定義というのは数式に名前をつけただけ。本来は関数の中には数(数式)が入る。
さっきの例で言うと
6 = ( if( 3 - 5 ) else 3; 1 + ( if( 4 - 5 ) else 4; 1 + ( if( 5 - 5 ) else 5; 1 + (・永遠に続く・) ) ) )
というひとつの式になる。
0 = ( if( 3 - 5 ) else 3; 1 + ( if( 4 - 5 ) else 4; 1 + ( if( 5 - 5 ) else 5; 1 + (・永遠に続く・) ) ) ) - 6
仮に方程式にしても通じる。もし、ここで変数への代入があった場合は?
考えてみたらわかるが5 = 4のような矛盾した数式が発生するため式として成立しなくなる。
■ このスレッドは過去ログ倉庫に格納されています