Skip to content

Commit

Permalink
Factor out loop and add "null hypothesis"
Browse files Browse the repository at this point in the history
  • Loading branch information
squaremo committed Oct 12, 2013
1 parent b49197a commit bc1c750
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 22 deletions.
12 changes: 3 additions & 9 deletions chapter6.3.ss
Original file line number Diff line number Diff line change
Expand Up @@ -302,16 +302,10 @@
(toplevel))
(toplevel))

;; For unattended execution. Read expressions from the current input
;; port, and evaluate them until EOF is read.

(define (eval-exprs)
;; For the smoketest
(define (eval-expr e)
(set! *env* sr.init)
(let ((in (read)))
(if (not (eq? in #!eof))
(begin
(display ((meaning in r.init #t)))(newline)
(eval-exprs)))))
((meaning e r.init #t)))

(define-primitive '+ + 2)
(define-primitive '- - 2)
Expand Down
10 changes: 4 additions & 6 deletions chapter6.ss
Original file line number Diff line number Diff line change
Expand Up @@ -561,12 +561,10 @@
(toplevel))
(toplevel))

(define (eval-exprs)
(let ((in (read)))
(if (not (eq? in #!eof))
(begin
((meaning in r.init) sr.init display)(newline)
(eval-exprs)))))
;; For the smoketest
(define (eval-expr e)
(call/cc (lambda (k)
((meaning e r.init) sr.init k))))

;; Things to play with
(define-primitive '+ + 2)
Expand Down
8 changes: 2 additions & 6 deletions chapter7.ss
Original file line number Diff line number Diff line change
Expand Up @@ -335,12 +335,8 @@
(display (compile+run in))(newline)
(repl)))

(define (eval-exprs)
(let ((in (read)))
(if (not (eq? #!eof in))
(begin
(display (compile+run in))(newline)
(eval-exprs)))))
;; For smoketest
(define eval-expr compile+run)

(define (define-primitive name underlying arity)
(let ((arity+1 (+ arity 1)))
Expand Down
1 change: 1 addition & 0 deletions null-eval.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(define eval-expr eval)
10 changes: 9 additions & 1 deletion run-smoketest.scm
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,15 @@
;; Actually, other than those imports, it's all R5RS I think.

(define (main arguments)

(load (cadr arguments))

(with-input-from-port (open-input-file "test-exprs.scm")
eval-exprs)
(lambda ()
(define (eval-exprs)
(let ((in (read)))
(if (not (eq? #!eof in))
(begin (display (eval-expr in))(newline)
(eval-exprs)))))
(eval-exprs)))
0)

0 comments on commit bc1c750

Please sign in to comment.