public static object DefineCompilerMacro(Symbol sym, LambdaClosure value, string doc) { if (!Functionp(sym.Value)) { ThrowError("Cannot define compiler macro for non-function {0}", sym); } sym.CompilerMacroValue = value; sym.CompilerDocumentation = doc; return sym; }
public static object DefineMacro(Symbol sym, LambdaClosure value, string doc) { EraseVariable(sym); sym.MacroValue = value; sym.CompilerDocumentation = doc; return sym; }