;; PROGRAMMING SET 3 ;; Finite Functions or key-value pairs ;; empty list (define empty-list '()) ;; insert (define insert ;; look-up --- you may use assq (define lookup (lambda (x l) (define list1 '((a 10) (b 44) (c (_a1 -> _a2)) (d int))) (define list2 (insert 'a 9 (insert 'b 43 (insert 'c '(_a2 -> _a3) (insert 'd 'bool empty-list))))) (define test1 (lookup 'a list1)) ;; Answer > 10 (define test2 (lookup 'c list1)) ;; Answer > (_a1 -> _a2) (define test3 (lookup 'd list1)) ;; Answer > int (define test4 (lookup 'a list2)) ;; Answer > 9 (define test5 (lookup 'c list2)) ;; Answer > (_a2 -> _a3) (define test6 (lookup 'd list2)) ;; Answer > bool (define test7 (lookup 'f list2)) ;; Answer > ERROR: lookup "no valid entry" (define test8 (lookup 'f '())) ;; Answer > ERROR: lookup "no valid entry"