2009-12-11から1日間の記事一覧

SICP問題3.14

mystery手続き(教科書で定義) (define (mystery x) (define (loop x y) (if (null? x) y (let ((temp (cdr x))) (set-cdr! x y) (loop temp x)))) (loop x '())) この手続きが一般に何をするのか、'(a b c d)を使って考えてみる (mystery x) loop呼び出し x …

今日の夕飯

カレーうどん カニカマサラダ カレーうどんは昨日のカレー鍋の残りに鶏肉,白ぶなぴー,ぶなしめじ,油揚げ,ネギを具として追加して、うどん,玉子を入れたもの。カニカマサラダの作り方 ニンジン,玉葱のスライスとキャベツの千切りを塩揉みして水を出す 1に裂い…

SICP問題3.13

make-cycle手続き(教科書で定義) (define (make-cycle x) (set-cdr! (last-pair x) x) x) zの定義 (define z (make-cycle (list 'a 'b 'c))) z ; #0=(a b c . #0#) 微妙な感じ。z の箱とポインタ図は以下のようになる ┌───────┐ ↓ │ z→□□→□□→□□┘ ↓ ↓ ↓ a b c…

SICP問題3.12

箱とポインタは ┌─┬─┐ │・│・│ → □□ └─┴─┘ ┌─┬─┐ │・│/│ → □■ └─┴─┘で表記してます。 2.2.1節のappend(教科書で定義) (define (append x y) (if (null? x) y (cons (car x) (append (cdr x) y)))) append!, last-pair(教科書で定義) (define (append! x y) …