]> git.rkrishnan.org Git - sicp.git/blob - src/sicp/ex4_1.rkt
Merge branch 'master' of github.com:vu3rdd/sicp
[sicp.git] / src / sicp / ex4_1.rkt
1 #lang racket
2
3 ;; left to right
4 (define (list-of-values exps env)
5   (define (iter valuelist expressions)
6     (if (no-operands? exps)
7         valuelist
8         (let ((value (eval (first-operand expressions) env)))
9           (iter (append valuelist (list value))
10                 (rest-operands expressions)))))
11   (iter '() exps))
12
13 ;; right to left
14 (define (list-of-values exps env)
15   (if (no-operands? exps)
16       '()
17       (let ((right (list-of-values (rest-exps exps) env)))
18         (cons (eval (first-exp exps) env)
19               right))))