;; (define (run x) ;; (define (test? y) (display "testing:") (display y) (newline) (eq? x y)) ;; (test? 3) ;; ) ;; (display "(run 3):") ;; (display (run 3)) ;; (newline) ;; (display "(run 4):") ;; (display (run 4)) ;; (newline) ;; (define (fm a) ;; (define-macro (a b) ;; (display b) ;; (newline) ;; "boo")) ;; (display "f-define-macro: ") ;; (fm 'dinges) ;; (a c) ;; (newline) ;; (define-macro (m a) ;; `(define-macro (,a b) ;; (display "b") ;; (display b) ;; (newline))) ;; (display "define-macro: ") ;; (m dinges) ;; (newline) ;; (display "running dinges: ") ;; (dinges c) ;; (newline) (define-macro (d-s n t) ;; (display "D-S: ") ;; (display `(define-macro (,n . a) ;; (,t (cons ',n a)))) ;; (newline) `(define-macro (,n . args) ;; (display "CALLING: t: ") ;; (display ,t) ;; (display " args: ") ;; (display (cons ',n a)) ;; (newline) ;; (display "HALLO: ==>") ;; (display (,t (cons ',n a))) ;; ;; (display "HALLO: ==>") ;; ;; (display (,t (cons ',n a))) ;; (newline) (,t (cons ',n args)) ) ) (d-s s-r (;; let () ;; syntax-rules uses (let () ...), ;; mes doesn't support that yet; use ((lambda () ...)) (lambda () ;; syntax-rules uses defines that get closured-in ;; mes doesn't support that yet; move down ;; (define name? symbol?) (lambda (. n-a) (define name? symbol?) (display "YEAH:") (display n-a) (display (name? n-a)) (newline) '(lambda (. i) ;;(i r c) (display "transformers") (newline) ''tee-hee-hee ) ;; (define (foo) (display "Footje") (newline) 'f-f-f) ;; foo ;;"blaat" ))) ) (display "calling s-r") (newline) (d-s when (s-r 0 1 2) ) (display "calling when") (newline) (display (when 3 4 5)) (newline) 'dun