Scheme で局所変数に代入を行うときは let を使う。let の書式は次のようになる。
(let binds body) 例えば、局所変数 i と j に値を代入し、i + j を出力させるプログラムは、 (let ((i 1) (j 2)) (+ i j)) となる。書式が複雑で少し見づらいが、let を使った上の式は lambda を使った次の式と同値だ。 ((lambda (i j) (+ i j)) 1 2) 数学式に書くと、f(1,2)。つまり局所変数の正体は引数なのだ。関数型言語はあくまでも関数でプログラムするらしい。lambda メソッドは Ruby にもあるので上の式は Ruby でもプログラムできる。 (lambda {|i, j| i + j}).call(1,2) プログラムを純粋に関数だけで組み立てると、代入に伴う副作用がなくバグが発生しにくいそうだ。もう一つの利点は処理系がひどく単純になることではないだろうか。理論や機械にやさしい分、プログラムするほうにはやや負担がかかる。
by tnomura9
| 2008-02-05 07:16
| Ruby
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||