2008. 8. 4.

연습문제 2.74

앞의 미분식의 도표와 유사하게 데이터가 저장된다고 하면..
가로는 부서, 세로는 일반함수라고 가정하자.

그렇다면 get-record는 다음과 같이 구성할 수 있다.

(define (get-record who-id employer-file)
  ((get 'get-record
        (get-division employer-file))
        who-id (get-file employer-file)))
이제 각 부서파일이 어떤 구조를 갖추어야하는지를 알아보면 각 부서파일은 최소한 두가지, 즉 자신이 어떤 부서인지와, 레코드를 검색할 수 있는 직원이름을 돌려주어야한다.
말하자면 일반적으로 다음과 같은 구조를 최소한 포함하여야한다.

(define (make-generic-file division file) (list division file))

(define (get-division gf) (car gf))
(define (get-file gf) (cadr gf))

b.
(define (get-salary who-id employer-file)
  ((get 'get-salary
        (get-division employer-file))
   who-id (get-file employer-file)))

c.
(define (find-employee-record who-id filelist)
  (lambda (file)
    (get-record who-id) file) filelist)

d. 해당 회사에 따르는 각종 연산자를 새로 구성하고 이를 테이블에 적용시켜야한다.

댓글 없음:

댓글 쓰기