]> gitweb.factorcode.org Git - factor-unmaintained.git/blobdiff - fries/fries.factor
unmaintained: New home for misfit Factor vocabularies.
[factor-unmaintained.git] / fries / fries.factor
diff --git a/fries/fries.factor b/fries/fries.factor
new file mode 100644 (file)
index 0000000..3f970a8
--- /dev/null
@@ -0,0 +1,17 @@
+USING: arrays vectors combinators effects kernel math sequences splitting
+strings.parser parser fry sequences.extras ;
+
+! a b c glue => acb
+! c b a [ append ] dip prepend
+
+IN: fries
+: str-fry ( str on -- quot ) split
+    [ unclip-last [ [ [ append ] [ prepend ] bi* ] reduce-r ] 2curry ]
+    [ length 1 - 1 <effect> [ call-effect ] 2curry ] bi ;
+: gen-fry ( str on -- quot ) split
+    [ unclip-last [ [ [ 1array ] [ append ] [ prepend ] tri* ] reduce-r ] 2curry ]
+    [ length 1 - 1 <effect> [ call-effect ] 2curry ] bi ;
+
+SYNTAX: i" parse-string rest "_" str-fry append! ;
+SYNTAX: i{ \ } parse-until >array { _ } gen-fry append! ;
+SYNTAX: iV{ \ } parse-until >vector V{ _ } gen-fry append! ;