diff --git a/mes.c b/mes.c index bf52ae2f..684841ac 100644 --- a/mes.c +++ b/mes.c @@ -1111,7 +1111,7 @@ eval_quasiquote (scm *e, scm *a) if (e == &scm_nil) return e; else if (atom_p (e) == &scm_t) return e; else if (eq_p (car (e), &scm_symbol_quote) == &scm_t) - return e; + return cons (car (e), eval_quasiquote (cdr (e), a)); else if (eq_p (car (e), &scm_symbol_quasiquote) == &scm_t) return cons (e, eval_quasiquote (cdr (e), a)); else if (eq_p (car (e), &scm_symbol_unquote) == &scm_t) diff --git a/test.mes b/test.mes index 6e63ae51..964ab48e 100644 --- a/test.mes +++ b/test.mes @@ -315,6 +315,10 @@ (display `(1 ,@s-r 4)) (newline) +(display "`(1 2 '(,(+ 1 2))): ") +(display `(1 2 '(,(+ 1 2)))) +(newline) + (display "when:") (when #t (display "true")