Runtime type checking for bool.
I think I'm going to retire bool in favor of e.g. 0= and null. Booleans are already Boolean, of course, and symbols should not be expected to have a valid interpretation in a Boolean context (I think?)
This commit is contained in:
@@ -70,7 +70,7 @@
|
|||||||
((= eq) (values (joy-math-func = stack) expression dict))
|
((= eq) (values (joy-math-func = stack) expression dict))
|
||||||
((<> != neq) (values (joy-math-func not-equal stack) expression dict))
|
((<> != neq) (values (joy-math-func not-equal stack) expression dict))
|
||||||
|
|
||||||
((bool) (joy-bool stack expression dict))
|
((bool) (values (joy-bool stack) expression dict))
|
||||||
|
|
||||||
((dup) (values (joy-dup stack) expression dict))
|
((dup) (values (joy-dup stack) expression dict))
|
||||||
((pop) (values (joy-pop stack) expression dict))
|
((pop) (values (joy-pop stack) expression dict))
|
||||||
@@ -135,8 +135,9 @@
|
|||||||
; ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚══╝╚══╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚══════╝
|
; ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚══╝╚══╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚══════╝
|
||||||
;Core Words
|
;Core Words
|
||||||
|
|
||||||
(define (joy-bool stack expression dict)
|
(define (joy-bool stack0)
|
||||||
(values (cons (joy-bool-term (car stack)) (cdr stack)) expression dict))
|
(receive (term stack) (pop-any stack0)
|
||||||
|
(cons (joy-bool-term term) stack)))
|
||||||
|
|
||||||
(define (joy-bool-term term)
|
(define (joy-bool-term term)
|
||||||
(cond ((boolean? term) term)
|
(cond ((boolean? term) term)
|
||||||
|
|||||||
Reference in New Issue
Block a user