more short-circuit updates
parent
bdd66927fc
commit
b87eee4d74
|
@ -77,7 +77,7 @@ UNION: explicit-inverse normal-inverse math-inverse pop-inverse ;
|
||||||
{ [ word? ] [ primitive? not ] [
|
{ [ word? ] [ primitive? not ] [
|
||||||
{ "inverse" "math-inverse" "pop-inverse" }
|
{ "inverse" "math-inverse" "pop-inverse" }
|
||||||
[ word-prop ] with contains? not
|
[ word-prop ] with contains? not
|
||||||
] } <-&& ;
|
] } 1&& ;
|
||||||
|
|
||||||
: (flatten) ( quot -- )
|
: (flatten) ( quot -- )
|
||||||
[ dup flattenable? [ word-def (flatten) ] [ , ] if ] each ;
|
[ dup flattenable? [ word-def (flatten) ] [ , ] if ] each ;
|
||||||
|
|
|
@ -64,12 +64,12 @@ PRIVATE>
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
: quasiquote-unquote ( cons -- newcons )
|
: quasiquote-unquote ( cons -- newcons )
|
||||||
[ { [ dup list? ] [ car dup lisp-symbol? ] [ name>> "unquote" equal? dup ] } && nip ]
|
[ { [ dup list? ] [ car dup lisp-symbol? ] [ name>> "unquote" equal? dup ] } 0&& nip ]
|
||||||
[ cadr ] traverse ;
|
[ cadr ] traverse ;
|
||||||
|
|
||||||
: quasiquote-unquote-splicing ( cons -- newcons )
|
: quasiquote-unquote-splicing ( cons -- newcons )
|
||||||
[ { [ dup list? ] [ dup cdr [ cons? ] [ car cons? ] bi and ]
|
[ { [ dup list? ] [ dup cdr [ cons? ] [ car cons? ] bi and ]
|
||||||
[ dup cadr car lisp-symbol? ] [ cadr car name>> "unquote-splicing" equal? dup ] } && nip ]
|
[ dup cadr car lisp-symbol? ] [ cadr car name>> "unquote-splicing" equal? dup ] } 0&& nip ]
|
||||||
[ dup cadr cdr >>cdr ] traverse ;
|
[ dup cadr cdr >>cdr ] traverse ;
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue