4 constant nil-type
5 constant pair-type
6 constant symbol-type
-7 constant primitive-type
+7 constant primitive-proc-type
+8 constant compound-proc-type
: istype? ( obj type -- obj bool )
over = ;
create-symbol set! set!-symbol
create-symbol ok ok-symbol
create-symbol if if-symbol
+create-symbol lambda lambda-symbol
\ }}}
cons
symbol-table setobj
- rot primitive-type ( var prim )
+ rot primitive-proc-type ( var prim )
global-env fetchobj define-var
;
2over 2over
operator 2swap eval
- primitive-type istype? false = if
+ primitive-proc-type istype? false = if
bold fg red ." Object not applicable. Aboring." reset-term cr
abort
then
symbol-type istype? if printsymbol exit then
nil-type istype? if printnil exit then
pair-type istype? if ." (" printpair ." )" exit then
- primitive-type istype? if printprim exit then
+ primitive-proc-type istype? if printprim exit then
bold fg red ." Error printing expression - unrecognized type. Aborting" reset-term cr
abort