X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=src%2Fscheme.4th;h=bb65be27e77a60d5f537157c1c45ef426e39f401;hb=ace5f5fbaf83906bb9f2b8293a6a366757eac615;hp=6e2c49255a788a7293646ee0c5a751aab51dd7f9;hpb=5eea24f47ad60b69af59a76c7285ec232c29009c;p=scheme.forth.jl.git diff --git a/src/scheme.4th b/src/scheme.4th index 6e2c492..bb65be2 100644 --- a/src/scheme.4th +++ b/src/scheme.4th @@ -1652,7 +1652,7 @@ hide env R> drop ['] eval goto-deferred \ Tail call optimization endof - except-message: ." object not applicable." recoverable-exception throw + except-message: ." object '" drop print ." ' not applicable." recoverable-exception throw endcase ; @@ -1749,30 +1749,14 @@ hide env 2over 2over ( env exp env exp ) operator ( env exp env opname ) - 2dup lookup-macro nil? false = if - \ Macro function evaluation + 2swap eval ( env exp proc ) - ( env exp env opname mproc ) - 2swap 2drop -2rot 2drop cdr ( env mproc body ) + -2rot ( proc env exp ) + operands 2swap ( proc operands env ) + list-of-vals ( proc argvals ) - macro-expand - - 2swap - ['] eval goto-deferred - else - \ Regular function application - - 2drop ( env exp env opname ) - - 2swap eval ( env exp proc ) - - -2rot ( proc env exp ) - operands 2swap ( proc operands env ) - list-of-vals ( proc argvals ) - - apply - exit - then + apply + exit then except-message: ." tried to evaluate object with unknown type." recoverable-exception throw @@ -2014,7 +1998,7 @@ variable gc-stack-depth include scheme-primitives.4th - s" scheme-library.scm" load 2drop +\ s" scheme-library.scm" load 2drop \ }}} @@ -2045,7 +2029,7 @@ variable gc-stack-depth enable-gc \ Display welcome message - welcome-symbol nil cons global-env obj@ eval 2drop + \ welcome-symbol nil cons global-env obj@ eval 2drop begin ['] repl-body catch