プログラミング再入門

プログラミングをもう一度ちゃんと勉強する読書ノート

2013-06-01から1ヶ月間の記事一覧

SICP 2.5.2 Combining Data of Different Types

と言う訳で、ここまで避けて通って来た異なる型同士の演算について。 基本的には総称関数の話だが、オブジェクト指向のメソッド検索にも通ずる話。 ノート complexにscheme-numberを足す例。 (define (install-complex-package) …中略 (define (add-complex-…

SICP 2.5 Systems with Generic Operations

ノート 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. 単にそれぞれのデータ型用の手続…

SICP 2.4 Multiple Representations for Abstract Data

data-directed programmingと言う言葉は聞いた事はなかったけど、状態マシンの実装の様に取るべきアクションが表になっていて、これに応じて動作するプログラムの話かと思いきや、実行時型情報的な話から総称関数、message passingに繋がり、いつのまにかオ…

SICP 2.3.4 Example: Huffman Encoding Trees

木を使った実用例としてデータ圧縮で使われるハフマン符合の話。 ノート ハフマン符号化に使う木は、葉に各文字とその発生頻度、節にはその下に含まれる全ての文字と発生頻度の合計を持つ。ここでは枝を左に辿ると0、右に辿ると1で符号化する。復号する時…

SICP 2.3.3 Example: Representing Sets

『Scheme手習い』だったか『Scheme修行』だったかで出て来たリストを使った集合演算の話。 ノート union-set、intersection-set、element-of-set?、adjoin-setを実装出来るデータ構造を作る。 Sets as unordered lists 順不同リスト(?)で表現した集合。 e…