SICP全般

両替日本版

両替問題は面白かった。 理屈は分かるけど、解けてしまうことがやっぱり不思議。 せっかくなので日本硬貨での両替計算も作ってみました。 (define (count-change amount) (define (cc amount kinds-of-coins) (cond ((= amount 0) 1) ((or (< amount 0) (= k…

run-guile モードで無限ループに入ると停止出来ないや

Meadowでのrun-guileモードはとても便利なんだけど、 何故か無限ループに入るとC-cC-cを押しても止めることが出来ない...。cygwinだと、 guile> (load "question-1_9.scm") ERROR: User interrupt ABORT: (signal) とかで停止出来るんだけど。 run-guileモー…

Meadow+cygwin でのscheme環境構築

Lispは本当に色々な実装があって迷う。 普段はMeadow+cygwinでプログラムしているので、試しにcygwin setupを覗いてみたら、Devel/guile-develを発見。 Meadowとの親和性がよいものがいいので、これを使うことに。id:higepon:20060415:1145108067さんの設定…

sicp-lib.scm

; sicp-lib.scm ; 共通関数群 (define (abs x) (if (< x 0) (- x) x)) (define (square x) (* x x)) (define (cube x) (* x x x)) (define (sqrt x) (define (sqrt-iter old new x) (if (good-enough? old new) new (sqrt-iter new (improve new x) x))) (de…