def/set/lookup are working!
[scheme.forth.jl.git] / scheme.4th
index d075e81..8581893 100644 (file)
@@ -126,8 +126,6 @@ create-symbol ok        ok-symbol
 
 \ ---- Environments ---- {{{
 
-objvar global-env
-
 : enclosing-env ( env -- env )
     cdr ;
 
@@ -145,9 +143,9 @@ objvar global-env
 
 : add-binding ( var val frame -- )
     2swap 2over frame-vals cons
-    2over set-car!
+    2over set-cdr!
     2swap 2over frame-vars cons
-    swap set-cdr!
+    2swap set-car!
 ;
 
 : extend-env ( vars vals env -- env )
@@ -205,7 +203,7 @@ hide vals
     get-vars-vals if
         2swap 2drop car
     else
-        bold fg red ." Tried to read unbound variable." reset-term abort
+        bold fg red ." Tried to read unbound variable." reset-term cr abort
     then
 ;
 
@@ -215,7 +213,7 @@ hide vals
         2swap 2drop ( val vals )
         set-car!
     else
-        bold fg red ." Tried to set unbound variable." reset-term abort
+        bold fg red ." Tried to set unbound variable." reset-term cr abort
     then
 ;
 
@@ -238,6 +236,10 @@ objvar env
 
 hide env
 
+objvar global-env
+nil nil nil extend-env
+global-env setobj
+
 \ }}}
 
 \ ---- Read ---- {{{
@@ -870,3 +872,5 @@ defer print
 ;
 
 forth definitions
+
+\ vim:fdm=marker