home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-386-Vol-2of3.iso / c / cr-macro.zip / TEST.SCM < prev    next >
Text File  |  1990-02-16  |  687b  |  37 lines

  1. ; Test cases
  2.  
  3. (test '((lambda () 2 1)))
  4.  
  5. (test '(begin (define x 1) (define y 2)))
  6.  
  7. (test '((lambda () (define x 1) x)))
  8.  
  9. ; inner
  10. (test '(let ((x 'outer))
  11.     (let-syntax ((m (lambda (exp rename compare) 'x)))
  12.       (let ((x 'inner))
  13.         (m)))))
  14.  
  15. ; outer
  16. (test '(let ((x 'outer))
  17.     (let-syntax ((m (lambda (exp rename compare) (rename 'x))))
  18.       (let ((x 'inner))
  19.         (m)))))
  20.  
  21. (test '(letrec ((x (lambda () x)))
  22.     (let ((y x))
  23.       (set! x 2)
  24.       (y))))
  25.  
  26. (define e1
  27.   '(let ((foo (lambda (x) (+ x 1))))
  28.      (let-syntax ((m (lambda (exp rename compare)
  29.                `(,(rename 'foo) ,(cadr exp)))))
  30.        (list (m 3)            ; => 4
  31.          (let ((foo 97))
  32.            (m foo)            ; => 98
  33.            )))))
  34.  
  35. (test e1)
  36.  
  37.