Sketching out call-cc implementation.
[scheme.forth.jl.git] / src / scheme-primitives.4th
index 183efec..f94701f 100644 (file)
     drop swap drop f> boolean-type
 ; 2 make-fa-primitive flo:>
 
+:noname ( flonum flonum -- bool )
+    drop swap drop f<= boolean-type
+; 2 make-fa-primitive flo:<=
+
+:noname ( flonum flonum -- bool )
+    drop swap drop f>= boolean-type
+; 2 make-fa-primitive flo:>=
 
 :noname ( flonum -- bool )
     drop 0.0 = boolean-type
@@ -592,13 +599,23 @@ defer display
 
 \ ==== Evaluation ==== {{{
 
-\ :noname ( args -- result )
-\     2dup car 2swap cdr
-\ 
-\     nil? false = if car then ( proc argvals )
-\     
-\     apply
-\ ; make-primitive apply 
+:noname ( args -- result )
+    2dup car 2swap cdr
+    nil? false = if car then ( proc argvals )
+     
+    2swap apply
+; make-primitive apply 
+
+: make-continuation
+  \ TODO: Capture parameter and return stacks in continuation
+;
+
+:noname ( args -- result )
+  make-continuation nil cons
+  2swap apply
+
+; 1 make-fa-primitive call-with-current-continuation
 
 \ }}}