# HG changeset patch # User Mike Pavone # Date 1388978861 28800 # Node ID 3bfc00e4f5e5d60dbfc995f0e9a98131d09b5fe4 # Parent dae093baf36cc8d338f20698930cb869474ee139 Eval lambda assignments at macro expandion time so they can be called by macros diff -r dae093baf36c -r 3bfc00e4f5e5 interp.js --- a/interp.js Sun Jan 05 17:00:33 2014 -0800 +++ b/interp.js Sun Jan 05 19:27:41 2014 -0800 @@ -740,6 +740,9 @@ } else { env.syms[expr.symbol.cleanName()] = {}; this.expressions[i] = expr.macroexpand(env); + if (this.expressions[i].expression instanceof lambda) { + env.syms[expr.symbol.cleanName()] = this.expressions[i].expression.eval(env); + } } } else { this.expressions[i] = expr.macroexpand(env);