@uents blog

Code wins arguments.

2014-07-01から1ヶ月間の記事一覧

SICP 読書ノート#18 - 2.3.4 Huffman符号化木(2) (pp.94-99)

「§2.3.4 Huffman符号化木」について。 テキストの説明がかなりわかりやすく、楽しく読めました。 問題 2.67 テキストのコードを写経し実行してみる。 (define sample-tree (make-code-tree (make-leaf 'A 4) (make-code-tree (make-leaf 'B 2) (make-code-t…

娘の言い間違いがかわいい

最近2才になった娘。 色々言葉を話せるようになったけど、時折出てくる言い間違いがいちいちかわいいのでメモ。 食べる→ぱれる→ぱべる お魚→おかさな とうもろこし→とうもころし お味噌汁→おみしる アイスクリーム→あすむくり、あいくすむり ただいまー→お…

SICP 読書ノート#17 - 2.3.4 Huffman符号化木(1) (pp.94-99)

おおよそ理解できてるつもりだけど、問題 2.69が上手く解けない。 (define (generate-huffman-tree pairs) (successive-merge (make-leaf-set pairs))) (define (successive-merge leafs) (if (null? leafs) nil (successive-merge-1 (cdr leafs) (car leafs…

SICP 読書ノート#16 - 2.3.3 集合の表現 (pp.88-94)

「§2.3.3 集合の表現」から。 順序づけられないリストの集合 写経して動かしてみる。intersection-setは内積(積集合)が求まる。 racket@> (element-of-set? 'a '(a b c d)) #t racket@> (adjoin-set 'z '(a b c d)) '(z a b c d) racket@> (intersection-s…

SICP 読書ノート#15 - 2.3 記号データ (pp.83-88)

「§2.3 記号データ」から。原文はSymbolic Data。 クォート これまではデータは全て値だった。クォートするとそのデータをシンボルとしてみなすことができる。 '(a b c)と(list 'a 'b 'c)と(cons 'a (cons 'b (cons 'b nil)))は等価。 eq?とequal?の違い。Ja…

SICP 読書ノート#14 - 2.2.4 図形言語(4) (pp.73-83)

引き続き「§2.2.4 図形言語」。いよいよ終盤。 ペインタの変換と組み合わせ transform-painterというペインタのフレーム変換を行う手続きを定義する。 (define (transform-painter painter origin corner1 corner2) (lambda (frame) (let ((m (frame-coord-m…

SICP 読書ノート#13 - 2.2.4 図形言語(3) (pp.73-83)

引き続き「§2.2.4 図形言語」。 ベクトル (問題 2.46) ベクトルのコンストラクタ、アクセサ、演算手続きを実装する。 (define (make-vect x y) (cons x y)) (define xcor-vect car) (define ycor-vect cdr) (define (add-vect vec1 vec2) (make-vect (+ (xco…

SICP 読書ノート#12 - 2.2.4 図形言語(2) (pp.73-83)

Racket Graphics Legacy Libraryを使う 前回のplanet/sicp.ssではほとんど実装済みであまり勉強にならないので、Graphics Legacy Libraryがおすすめ。 http://docs.racket-lang.org/graphics/index.html http://stackoverflow.com/questions/13592352/compil…

SICP 読書ノート#11 - 2.2.4 図形言語(1) (pp.73-83)

Racket supports The SICP Picuture Languageを使う 色々試行錯誤したが、図形言語を単に試すだけならこれがいちばん簡単だった。 http://planet.racket-lang.org/package-source/soegaard/sicp.plt/2/1/planet-docs/sicp-manual/index.html http://d.hatena…

SICP 読書ノート#10 - SICPのためのプログラミング環境構築

「§2.2.4 図形言語」に入る際にグラフィックスまわりのライブラリが必要になってきたので、 遅ればせながらScheme処理系であるRacketやEmacsの環境構築方法をまとめてみました。 (2015/04/29追記) 内容が古くなってきたので全体的に加筆/修正しました (2015/…

SICP 読書ノート#9 - 2.2.3 公認インターフェースとしての並び - 写像の入れ子 (pp.71-73)

「§2.2.3 公認インターフェースの並び」の「写像の入れ子」から。 写像の入れ子 まずは写経。 enumerate-intervalから復習。 (define (enumerate-interval low high) (if (> low high) nil (cons low (enumerate-interval (+ low 1) high)))) racket@> (enum…

SICP 読書ノート#8 - 2.2.3 公認インターフェースとしての並び (pp.65-70)

「§2.2.3 公認インターフェースの並び」から。 公認インターフェース(conventional interfaces)というのがよくわからないけど、信号処理のフィルタのように手続きを組み合わせてプログラムを構成することを考える模様。 並びの演算 filterやaccumulateの実…

Windows 7/Vistaの起動時のHDDアクセスを軽減する

久々にWindows VistaのPCを起動したら起動直後のHDDランプ点滅が酷かったので、ちょっとググって試したことメモ。 ※(2014/7/8追記) Windows 7もほぼ同じようなのでタイトルを変更しました。 HDDアクセスを調べるには パフォーマンスモニターを使うと実際にど…

SICP 読書ノート#7 - 2.2 階層データ構造と閉包性 (pp.55-65)

「§2.2 階層データ構造と閉包性」から。 閉包性とはclosure propertyというそうだが、このclosureはJavaScripter等で おなじみの「クロージャ」ではなく、部品(モジュール同士)が密結合することなく 部品のプロパティがその中に閉じており独立性が保たれてい…