(module a1 mzscheme (provide (all-defined)) (define-struct s (args body f ns)) (define-syntax def (syntax-rules () ((d name args body ...) (define name (make-s 'args '(body ...) #f (current-namespace)))))) (define (act an-s) (parameterize ((current-namespace (s-ns an-s))) (set-s-f! an-s (eval `(lambda ,(s-args an-s) ,@(s-body an-s)))))) (define (app an-s . args) (apply (s-f an-s) args)) (define (my-f3 x) (* x x)) )