]> gitweb.factorcode.org Git - factor.git/blob - basis/sequences/merged/merged.factor
basis: removing unnecessary method stack effects.
[factor.git] / basis / sequences / merged / merged.factor
1 ! Copyright (C) 2008 Alex Chapman
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors arrays kernel math math.order sequences
4 sequences.private ;
5 IN: sequences.merged
6
7 TUPLE: merged seqs ;
8 C: <merged> merged
9
10 : <2merged> ( seq1 seq2 -- merged ) 2array <merged> ;
11 : <3merged> ( seq1 seq2 seq3 -- merged ) 3array <merged> ;
12
13 : merge ( seqs -- seq )
14     [ <merged> ] keep first like ;
15
16 : 2merge ( seq1 seq2 -- seq )
17     [ <2merged> ] keepd like ;
18
19 : 3merge ( seq1 seq2 seq3 -- seq )
20     [ <3merged> ] keepdd like ;
21
22 M: merged length
23     seqs>> [ [ length ] [ min ] map-reduce ] [ length ] bi * ; inline
24
25 M: merged virtual@
26     seqs>> [ length /mod ] [ nth-unsafe ] bi ; inline
27
28 M: merged virtual-exemplar
29     seqs>> ?first ; inline
30
31 INSTANCE: merged virtual-sequence