2008-02-01から1ヶ月間の記事一覧
疲れた><。 type-x>y?は作ってみたけど使わなかった。 (比較する度に階数を計算するのは効率が悪そうだし…) ;;m2.83 """ 順序 integer -> rational -> real -> complex """ (define (install-raise-package) (define (integer->rational i) (make-rational…
sudo apt-get install polipo設定は127.0.0.1:8123にアクセスすればいいみたい。
(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)))…
物語の体操という本の中にプロット*1を作成する練習の仕方が書いてあるそうです。 (実際に読んだことはないです。><) タロットっぽいカードをシャッフルしてから並び替えて行うみたいです。 順番にそれぞれ意味があってその意味とカードの内容とを対応づけ…
//aは配列 for (var i=0, j=a.length; i < j; i++) { /*何かの処理..*/ } という感じのイディオムがあるけど、これってどれくらい早いんだろう? 試しに計ってみました。 >< コードはこんな感じです。 for1.js #!/usr/bin/env js var a = []; var n = 1000…
put/getには2つのバグがありました リストをkeyにして正しく検索できない。 失敗するとそこで終了してしまう。 '(test test)などのリストのkeyで正しく検索できない問題 リファレンスにしっかりと書いてありました。 >< http://practical-scheme.net/gauch…
もう少し真面目にしたほうがいいかもしれない。 ;;2.79 ;;generic function equ? をつける。 ;;面倒なので、同じ型で同じ値以外は#fを返すようにする。 (define (install-equ?) (define (equ? x y) (apply-generic 'equ x y)) (define (same-type? x y) (eq?…
この先の問題もけっこう楽にできそう。 ;;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…
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) '(…
(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)…
問題を解く気力あなかったので、先の方を読んでみました。 その時に、メッセージパッシングが理解できた気がしたので、 実際に、作ってみました。 その後、読んだだけの状態を記憶しておける関数も 作れる気がしたので作ってみることにしました。 そしたら、…