問題1.14、問題1.15 – SICP(計算機プログラムの構造と解釈)その7
問題1.14 (define (count-change amount) (cc amount 5)) (define (cc amount kinds-of-coins) (cond ((= amount 0) 1) ((or (< amount 0) (= kinds-of-coins 0)) 0) (else (+ (cc amount (- kinds-of-coins 1)) (c…続きを読む
問題1.14 (define (count-change amount) (cc amount 5)) (define (cc amount kinds-of-coins) (cond ((= amount 0) 1) ((or (< amount 0) (= kinds-of-coins 0)) 0) (else (+ (cc amount (- kinds-of-coins 1)) (c…続きを読む
問題1.12 パスカルの三角形(Pascal’s triangle)の上から n 行目、左から k 番目の値を求める式。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 (define (pascals-triangle n k) (if (or (= n k) (= k 1)) 1 (+ (pascals-tr…続きを読む
1.2.2 木構造再帰 木構造再帰的プロセスの (fib n)。 (define (fib n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib (- n 2)))))) (fib 4) (+ (fib (- 4 1)) (fib (- 4 2))) (+ (fib 3) (fib 2)) (+ (+ (fib (- 3 1)) …続きを読む
問題1.9 再帰的プロセスと反復的プロセス 次の手続きは再帰的プロセスを生成する。 (define (+ a b) (if (= a 0) b (inc (+ (dec a) b)))) (+ 4 5) (inc (+ (dec 4) 5)) (inc (inc (+ (dec 3) 5))) (inc (inc (inc (+ (dec 2) 5)))) (inc (inc (inc (inc …続きを読む
問題1.8 立方根(cube root)を求める。 (define (cube x) (* x x x)) (define (square x) (* x x)) (define (improve guess x) (/ (+ (/ x (square guess)) (* guess 2.0)) 3.0)) (define (cube-root-iter old-guess new-guess …続きを読む
選択範囲を数値文字参照に変換するスクリプト str2numchar.vim – 川o・-・)<2nd life を参考にして HTML文字実体参照(& < > " => & < > ")の変換・逆変換をするvimスクリプトを作った。 スクリプトファイル str2htmlentity.vim…続きを読む
問題1.6 (new-if (good-enough? guess x) guess (sqrt-iter (improve guess x) x)) new-if は通常の手続きのため、作用的順序の評価では引数が先に評価されるので、 (good-enough? guess x) が真を返す場合でも (sqrt-iter (improve guess x) x) まで評価されるので、無限ループに陥…続きを読む
以前読みかけて挫折していた SICP にもう1度挑戦するために今度は blog でメモを取りながら続けてみる。 問題1.2 (/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 5))))) (* 3 (- 6 2) (- 2 7))) ;=> -37/150 問題1.3 (define (square a) (* a a)) (define (sum-of-squares a b) …続きを読む
以下のサイトを参考にして vim で gauche を編集中にスクラッチバッファに評価結果を表示させてみた。 vimのgaucheの出力をウィンドウ分割して表示 | jigen studylog 先日のvimとgaucheの連携をちょっと改良 | jigen studylog scratch utility : 自由に開閉できる作業用バッファ管理プラグイン — 名無しのvim使い まず、scrat…続きを読む
次のスクリプトを使って vim で <img>タグを挿入する際に width, height 属性を自動入力する。 画像の情報を取得するのに ImageMagick の identify を使用している。 スクリプトファイルは適当な名前(imgsize)で PATH の通った場所に保存する。 #!/usr/bin/env ruby ARGV.each { |file| if FileT…続きを読む