2016-12-01から1ヶ月間の記事一覧

SICPゼミ第36回

練習問題2.78からやり直し 練習問題2.78 (define (attach-tag type-tag contents) (if (eq? type-tag 'scheme-number) contents (cons type-tag contents ))) (define (type-tag datum) (if (pair? datum) (car datum) (if (number? datum) 'scheme-number (…

SICPゼミ第35回

練習問題2.82 例えば引数が長方形と菱形と正方形であるときを考えると、全ての引数を平行四辺形に強制型変換しなければならないが、各引数の型へと変換しようとする限り、平行四辺形にはたどり着かない。つまり、型の関係において分岐が生じており、その分岐…

SICPゼミ第34回

2章に帰ってきました。put, get など (define (key-compare a b) 0) (define (make-table) (let (( local-table (list '*table* ))) (define (lookup key-1 key-2) (let (( subtable (assoc key-1 (cdr local-table )))) (if subtable (let (( record (assoc…

SICPゼミ第33回

練習問題4.1 左から右 (define (list-of-values exps env) (if (no-operands? exps) '() (let ((val (eval (first-operand exps) env))) (cons val (list-of-values (rest-operands exps) env))))) 右から左 (define (list-of-values exps env) (if (no-oper…