factor/extra/combinators/extras/extras.factor

17 lines
547 B
Factor
Raw Normal View History

2013-03-24 12:55:44 -04:00
! Copyright (C) 2013 Doug Coleman, John Benediktsson.
! See http://factorcode.org/license.txt for BSD license.
2013-03-24 12:55:44 -04:00
USING: arrays combinators kernel macros quotations sequences ;
IN: combinators.extras
: once ( quot -- ) call ; inline
: twice ( quot -- ) dup [ call ] dip call ; inline
: thrice ( quot -- ) dup dup [ call ] 2dip [ call ] dip call ; inline
2013-03-24 12:55:44 -04:00
MACRO: cond-case ( assoc -- )
[
dup callable? not [
[ first [ dup ] prepose ]
[ second [ drop ] prepose ] bi 2array
] when
] map [ cond ] curry ;