diff --git a/tmp-macro-test.scm b/tmp-macro-test.scm new file mode 100644 index 00000000..eeefbe65 --- /dev/null +++ b/tmp-macro-test.scm @@ -0,0 +1,22 @@ +(import (scheme base) (scheme write) (scheme eval) (scheme cyclone util)) + +(define a-env (create-environment '() '())) + +(let* ( +(vars (foldl (lambda (lis acc) (append acc (car lis))) '() a-env)) +(vals (foldl (lambda (lis acc) (append acc (cdr lis))) '() a-env)) +(zipped (apply map list vars (list vals))) +(defined-macros + (filter + (lambda (v) + (Cyc-macro? (Cyc-get-cvar (cdr v)))) + zipped)) +(macro-env + (env:extend-environment + (map car defined-macros) + (map (lambda (v) + (list 'macro (cdr v))) + defined-macros) + '())) ;; base-env +) + (write macro-env))