more short-circuit updates

db4
Eduardo Cavazos 2008-06-10 21:06:36 -05:00
parent bdd66927fc
commit b87eee4d74
2 changed files with 3 additions and 3 deletions

View File

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

View File

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