2013-06-01から1ヶ月間の記事一覧
と言う訳で、ここまで避けて通って来た異なる型同士の演算について。 基本的には総称関数の話だが、オブジェクト指向のメソッド検索にも通ずる話。 ノート complexにscheme-numberを足す例。 (define (install-complex-package) …中略 (define (add-complex-…
ノート Now we will see how to use this same idea not only to define operations that are generic over different representations but also to define operations that are generic over different kinds of arguments. 単にそれぞれのデータ型用の手続…
data-directed programmingと言う言葉は聞いた事はなかったけど、状態マシンの実装の様に取るべきアクションが表になっていて、これに応じて動作するプログラムの話かと思いきや、実行時型情報的な話から総称関数、message passingに繋がり、いつのまにかオ…
木を使った実用例としてデータ圧縮で使われるハフマン符合の話。 ノート ハフマン符号化に使う木は、葉に各文字とその発生頻度、節にはその下に含まれる全ての文字と発生頻度の合計を持つ。ここでは枝を左に辿ると0、右に辿ると1で符号化する。復号する時…
『Scheme手習い』だったか『Scheme修行』だったかで出て来たリストを使った集合演算の話。 ノート union-set、intersection-set、element-of-set?、adjoin-setを実装出来るデータ構造を作る。 Sets as unordered lists 順不同リスト(?)で表現した集合。 e…