diff --git a/mes.c b/mes.c index 48c21400..13d86f0c 100644 --- a/mes.c +++ b/mes.c @@ -405,7 +405,8 @@ evlis (scm *m, scm *a) #endif if (m == &scm_nil) return &scm_nil; - return cons (eval (car (m), a), evlis (cdr (m), a)); + scm *e = eval (car (m), a); + return cons (e, evlis (cdr (m), a)); } scm scm_evlis = {FUNCTION2, .name="evlis", .function2 = &evlis}; diff --git a/mes.mes b/mes.mes index fa4ac0d4..d17b99bc 100644 --- a/mes.mes +++ b/mes.mes @@ -212,10 +212,7 @@ (getchar) '()) ;; TODO *dot* - (#t (xcons (readlis a) (readword (getchar) '() a))))) - -(define (xcons a b) - (cons b a)) + (#t (cons (readword (getchar) '() a) (readlis a))))) (define (readcomment c) (cond ((eq c 10) ;; \n diff --git a/test.mes b/test.mes index 10a50fab..fc187d3f 100644 --- a/test.mes +++ b/test.mes @@ -26,6 +26,9 @@ 4 (newline) +(cons (display 'one) (display '-) (display 'two)) +(newline) + (display 'hello-display-symbol) (newline)