2006-09-26から1日間の記事一覧

遅延評価の利点と欠点

利点 不要な計算を減らせる 無限リストが扱える 大抵のことはリスト処理でできる 欠点 評価順序がわかりづらい スタックトレースが意味をなさないためデバッグしにくい

参照透過性

Referential transparency「同じスコープ内では、同じ式はすべて同じ値を持つ」という性質

if を関数として実装

Haskellは必要呼出し、OCamlは値呼出し {- Haskell -} myIf :: Bool -> a -> a -> a myIf True t e = t myIf False t e = e main = myIf True (putStrLn "then") (putStrLn "else") ---------- 実行結果: then (* OCaml *) let myIf c t e = match c with tr…

評価戦略

値呼出し (call by value) => 最内簡約 名前呼出し(call by name) => 最外簡約 必要呼出し(call by need) => 最外簡約かつグラフ簡約 最内簡約 先に引数を簡約してから関数を展開 square (1+3) → square 4 → 4 * 4 → 16 最外簡約 関数を展開してから引数を簡…

時蠅

わー、いつのまにかピッケル本の改訂版が出てるー。初版まだ半分も読んでないのにー。まぁ、日常的にRuby使わないなら読む必要ない部分も多いんだけども。ライブラリとかは必要になったらその都度読む。カタログですカタログ。人気のある本をとりあえず買っ…