2008-02-01から1ヶ月間の記事一覧

(sicp33)m2.83~m2.84

疲れた><。 type-x>y?は作ってみたけど使わなかった。 (比較する度に階数を計算するのは効率が悪そうだし…) ;;m2.83 """ 順序 integer -> rational -> real -> complex """ (define (install-raise-package) (define (integer->rational i) (make-rational…

ubuntuでpolipoを入れる方法

sudo apt-get install polipo設定は127.0.0.1:8123にアクセスすればいいみたい。

m2.81

(use pre-sicp2) """ pre-sicp.scmにput-coercionなどを書いた """ (define (scheme-number->complex n) (make-complex-from-real-imag (contents n) 0)) (put-coercion 'scheme-number 'complex scheme-number->complex) (let ((t (make-scheme-number 3)))…

物語の体操にでてくるプロット作成法をruby+emacsで手軽に

物語の体操という本の中にプロット*1を作成する練習の仕方が書いてあるそうです。 (実際に読んだことはないです。><) タロットっぽいカードをシャッフルしてから並び替えて行うみたいです。 順番にそれぞれ意味があってその意味とカードの内容とを対応づけ…

配列の中身をすべて取り出す時に…

js

//aは配列 for (var i=0, j=a.length; i < j; i++) { /*何かの処理..*/ } という感じのイディオムがあるけど、これってどれくらい早いんだろう? 試しに計ってみました。 >< コードはこんな感じです。 for1.js #!/usr/bin/env js var a = []; var n = 1000…

(sicp?)put/getの修正

put/getには2つのバグがありました リストをkeyにして正しく検索できない。 失敗するとそこで終了してしまう。 '(test test)などのリストのkeyで正しく検索できない問題 リファレンスにしっかりと書いてありました。 >< http://practical-scheme.net/gauch…

(sicp31)m2.79~2.80

もう少し真面目にしたほうがいいかもしれない。 ;;2.79 ;;generic function equ? をつける。 ;;面倒なので、同じ型で同じ値以外は#fを返すようにする。 (define (install-equ?) (define (equ? x y) (apply-generic 'equ x y)) (define (same-type? x y) (eq?…

(sicp30)m2.77~m2.78

この先の問題もけっこう楽にできそう。 ;;m2.77 (use ggc.debug.trace) (let () (trace apply-generic) ;; (untrace) (define z (make-from-real-imag 3 4)) (magnitude z)) ;; 4:user> 0:(apply-generic magnitude (complex rectangular ... ;; 1: (apply-g…

strange-fold

sicpのaccumulate-nのところで出てきた。 ((1 2 3) (4 5 6) (7 8 9) (10 11 12))こんな感じの並びを簡単に作れたらいいなー srfi-1の中にこんなのがあった drop take これがあれば楽に作れるかもしれない (use-srfi 1) (define (f lst n) (if (null? lst) '(…

(sicp?)puts/getsを少し変更

(put 'test '(test) "test") (get 'test '(test)) 0:user> *** ERROR: hash table doesn't have an entry for key (test) (put )のがlistだと上手く認識してくれないみたい。 (car (hash-table-keys (hash-table-get parent-hash 'test))) 1:user> => (test)…

(sicp29)試しに先の方のことを読んでみた。

問題を解く気力あなかったので、先の方を読んでみました。 その時に、メッセージパッシングが理解できた気がしたので、 実際に、作ってみました。 その後、読んだだけの状態を記憶しておける関数も 作れる気がしたので作ってみることにしました。 そしたら、…