SICP 問題 2.74
;; a ;; 各事業所ごとに従業員ファイルを作っていると考え,person-fileのcar部に ;; 従業所を識別するコードを入れるようにする. (define (get-record name person-file) ((get 'get-record (division person-file)) name file)) (define (division file) (car file)) ;; b ;; ここではrecordが(name salary age)となってると考える. ;; この事業所のrecordからsalaryを取り出すにはcadrを取れば良い (define (get-salary name record) ((get 'get-salary (identifying person-file)) record)) ;; c (define (find-employee-record name division-list) (if (null? division-list) false (let ((serch (lambda (x) ((get 'get-record (division x)) name x)))) (if (serch (car division-list)) (serch (car division-list)) (find-employee-record name (cdr division-list)))))) ;; d ;; その新しく合併した会社の従業員レコードから情報を得るget-recordとget-salaryなどの ;; 必要な手続きを作りパッケージを作成し,本社の表にputすればよい.