diff --git a/doc/DRAWL.md b/doc/DRAWL.md index df4271b..a2a738b 100644 --- a/doc/DRAWL.md +++ b/doc/DRAWL.md @@ -24,6 +24,7 @@ However, the code is partitioned to allow for easy extension so some of these mi - Hexadecimal input/output - LoRes Apple II graphics - Ctrl-C break into running program +- MACROs for meta-programming. See [defun.lisp](https://github.com/dschmenk/PLASMA/blob/master/src/lisp/defun.lisp) The DRAWL implementation comes with the following built-in functions: @@ -43,7 +44,7 @@ The DRAWL implementation comes with the following built-in functions: - LAMBDA(...) - FUNARG() = List constructed by FUNCTION() - FUNCTION() - +- MACRO(...) = Operate on non-evaluated argument list ### Predicates diff --git a/src/lisp/s-expr.pla b/src/lisp/s-expr.pla index 843881f..db4725b 100644 --- a/src/lisp/s-expr.pla +++ b/src/lisp/s-expr.pla @@ -881,7 +881,7 @@ export def eval_expr(expr)#1 expr = apply_funargs(func, expr=>cdr) break elsif func=>car == sym_macro // MACRO - new_assoc(func=>cdr=>car=>car, args) // Add args kist argument + new_assoc(func=>cdr=>car=>car, args) // Add args list argument curl = NULL expr = func=>cdr=>cdr=>car else