1 ! Copyright (C) 2008, 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel sequences sequences.private arrays vectors fry
4 math.order namespaces assocs ;
7 : flattener ( seq quot -- seq vector quot' )
13 [ _ push-all ] [ _ push ] if
18 : flattening ( seq quot combinator -- seq' )
19 [ flattener ] dip dip { } like ; inline
21 : map-flat ( seq quot -- seq' ) [ each ] flattening ; inline
23 : 2map-flat ( seq quot -- seq' ) [ 2each ] flattening ; inline
27 yield-hook global [ [ ] or ] change-at