]> gitweb.factorcode.org Git - factor.git/blob - unmaintained/fries/fries.factor
3f970a86bfa91554c10bb2f823e9f7c64f6a9e48
[factor.git] / unmaintained / fries / fries.factor
1 USING: arrays vectors combinators effects kernel math sequences splitting
2 strings.parser parser fry sequences.extras ;
3
4 ! a b c glue => acb
5 ! c b a [ append ] dip prepend
6
7 IN: fries
8 : str-fry ( str on -- quot ) split
9     [ unclip-last [ [ [ append ] [ prepend ] bi* ] reduce-r ] 2curry ]
10     [ length 1 - 1 <effect> [ call-effect ] 2curry ] bi ;
11 : gen-fry ( str on -- quot ) split
12     [ unclip-last [ [ [ 1array ] [ append ] [ prepend ] tri* ] reduce-r ] 2curry ]
13     [ length 1 - 1 <effect> [ call-effect ] 2curry ] bi ;
14
15 SYNTAX: i" parse-string rest "_" str-fry append! ;
16 SYNTAX: i{ \ } parse-until >array { _ } gen-fry append! ;
17 SYNTAX: iV{ \ } parse-until >vector V{ _ } gen-fry append! ;