|
12345678910111213141516171819202122232425262728293031323334353637383940 |
- ;;;; Diverse hjelpekode for innlevering 3a i INF2810, 2017.
- ;;;; erikve [at] ifi.uio.no
-
-
- ;; Tabell-abstraksjon fra seksjon 3.3.3 i SICP:
-
- (define (make-table)
- (list '*table*))
-
- (define (lookup key table)
- (let ((record (assoc key (cdr table))))
- (and record (cdr record))))
-
- (define (insert! key value table)
- (let ((record (assoc key (cdr table))))
- (if record
- (set-cdr! record value)
- (set-cdr! table
- (cons (cons key value) (cdr table))))))
-
-
- ;; mem-testprosedyre 1; fibonacci-tallene
- (define (fib n)
- (display "computing fib of ")
- (display n) (newline)
- (cond ((= n 0) 0)
- ((= n 1) 1)
- (else (+ (fib (- n 1))
- (fib (- n 2))))))
-
-
- ;; mem-testprosedyre 2; tar virkårlig mange argumenter (null eller flere).
- ;; (Returnerer summen av argumentenes kvadrerte forskjell fra 42.)
- (define (test-proc . args)
- (display "computing test-proc of ")
- (display args) (newline)
- (if (null? args)
- 0
- (+ (expt (- 42 (car args)) 2)
- (apply test-proc (cdr args)))))
|