ERROR: bad-math-inverse ;
: next ( revquot -- revquot* first )
- [ bad-math-inverse ]
- [ unclip-slice ] if-empty ;
+ [ bad-math-inverse ] [ unclip-slice ] if-empty ;
: constant-word? ( word -- ? )
- stack-effect
- [ out>> length 1 = ]
- [ in>> empty? ] bi and ;
+ stack-effect [ out>> length 1 = ] [ in>> empty? ] bi and ;
: assure-constant ( constant -- quot )
dup word? [ bad-math-inverse ] when 1quotation ;
dup
[ word? ] [ symbol? not ] bi and
[ missing-literal ] when ;
+
\ + [ - ] [ - ] define-math-inverse
\ - [ + ] [ - ] define-math-inverse
\ * [ / ] [ / ] define-math-inverse
: both ( object object -- object )
dupd assert= ;
+
\ both [ dup ] define-inverse
{
MACRO: matches? ( quot -- quot' ) [matches?] ;
ERROR: no-match ;
+
M: no-match summary drop "Fall through in switch" ;
: recover-chain ( seq -- quot )