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
:noname ( args -- result )
2dup car 2swap cdr
-
+
nil? false = if car then ( proc argvals )
-
- apply
+
+ 2swap apply
; make-primitive apply
+:noname ( proc -- result )
+ make-continuation
+
+ ( Note that we get to this point either when
+ make-continuation is originally called or when
+ restore-continuation is called. Since we don't
+ want to call proc again following a restore,
+ we use the boolean values placed on the parameter
+ stack by make-continuation and restore-continuation
+ to detect which call got us here and act accordingly. )
+
+ drop if
+ nil cons
+ 2swap apply
+ else
+ 2swap 2drop
+ then
+
+; 1 make-fa-primitive call-with-current-continuation
+
\ }}}
\ ==== Miscellaneous ==== {{{