sequences.interleaved: adding a interleaved sequence.
parent
fb0a6c6c5e
commit
192cf2a352
|
@ -0,0 +1 @@
|
||||||
|
John Benediktsson
|
|
@ -0,0 +1,7 @@
|
||||||
|
USING: sequences.interleaved strings tools.test ;
|
||||||
|
|
||||||
|
{ "" } [ "" CHAR: _ <interleaved> >string ] unit-test
|
||||||
|
{ "a" } [ "a" CHAR: _ <interleaved> >string ] unit-test
|
||||||
|
{ "a_b" } [ "ab" CHAR: _ <interleaved> >string ] unit-test
|
||||||
|
{ "a_b_c" } [ "abc" CHAR: _ <interleaved> >string ] unit-test
|
||||||
|
{ "a_b_c_d" } [ "abcd" CHAR: _ <interleaved> >string ] unit-test
|
|
@ -0,0 +1,26 @@
|
||||||
|
! Copyright (C) 2018 John Benediktsson.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
|
||||||
|
USING: accessors kernel math math.order sequences
|
||||||
|
sequences.private ;
|
||||||
|
|
||||||
|
IN: sequences.interleaved
|
||||||
|
|
||||||
|
TUPLE: interleaved { seq read-only } { elt read-only } ;
|
||||||
|
|
||||||
|
C: <interleaved> interleaved
|
||||||
|
|
||||||
|
M: interleaved length seq>> length dup 1 - + 0 max ;
|
||||||
|
|
||||||
|
M: interleaved nth-unsafe
|
||||||
|
over even? [
|
||||||
|
[ 2 / ] [ seq>> ] bi* nth-unsafe
|
||||||
|
] [
|
||||||
|
nip elt>>
|
||||||
|
] if ;
|
||||||
|
|
||||||
|
M: interleaved like seq>> like ;
|
||||||
|
|
||||||
|
M: interleaved new-sequence seq>> new-sequence ;
|
||||||
|
|
||||||
|
INSTANCE: interleaved immutable-sequence
|
|
@ -0,0 +1 @@
|
||||||
|
Interleaved sequences
|
Loading…
Reference in New Issue