; http://stackoverflow.com/questions/23167464/scheme-self-reference-lambda-macro ; because this is as cool as things get (define-syntax slambda (lambda (x) (syntax-case x () ((slambda formals body0 body1 ...) (with-syntax ((self (datum->syntax #'slambda 'self))) #'(letrec ((self (lambda formals body0 body1 ...))) self)))))) ( (slambda (x) (+ x 1)) 10) ((slambda () self))