(require-library "function.ss") (print-struct #t) (require-library "invoke.ss") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-signature enrolldb^ (create-enroll-DB enroll-student)) (define EnrollDBUnit (unit/sig enrolldb^ (import) (define empty null) ;; student is a symbol (name) and course is a symbol (course number) (define-struct enrollrec (student course)) ;; enrollDB is a list of enroll structures (define create-enroll-DB (lambda () empty)) ;; enroll-student : student course enrollDB -> enrollDB ;; adds an enrollment of given student to given course in database (define enroll-student (lambda (student course DB) (cons (make-enrollrec student course) DB))) )) (require-library "invoke.ss") (define-values/invoke-unit/sig enrolldb^ EnrollDBUnit)