Merge branch 'master' of git://factorcode.org/git/factor
[factor/jcg.git] / basis / calendar / format / macros / macros.factor
blob6d6dd3ae235e02c43b6913d8a92291409019e7a6
1 USING: macros kernel words quotations io sequences combinators
2 continuations ;
3 IN: calendar.format.macros
5 MACRO: formatted ( spec -- )
6     [
7         {
8             { [ dup word? ] [ 1quotation ] }
9             { [ dup quotation? ] [ ] }
10             [ [ nip write ] curry [ ] like ]
11         } cond
12     ] map [ cleave ] curry ;
14 MACRO: attempt-all-quots ( quots -- )
15     dup length 1 = [ first ] [
16         unclip swap
17         [ nip attempt-all-quots ] curry
18         [ recover ] 2curry
19     ] if ;