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:
sforman 2023-10-21 19:25:14 -07:00
parent bd55214a52
commit 0a135e0f38
1 changed files with 4 additions and 3 deletions

View File

@ -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)