]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.extra: make evens/odds virtual sequences.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 16 Feb 2018 16:40:57 +0000 (08:40 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 16 Feb 2018 16:40:57 +0000 (08:40 -0800)
extra/sequences/extras/extras.factor

index adfcf15d93f7de7139933aa2c275a44741ce41f0..4783342b7169af9cd1b886b509337529c2eb1269 100644 (file)
@@ -388,28 +388,28 @@ C: <evens> evens
 
 M: evens length seq>> length 1 + 2/ ; inline
 
-M: evens nth-unsafe [ 2 * ] [ seq>> nth-unsafe ] bi* ; inline
+M: evens virtual@ [ 2 * ] [ seq>> ] bi* ; inline
 
-M: evens like seq>> like ;
-
-M: evens new-sequence seq>> new-sequence ;
+M: evens virtual-exemplar seq>> ; inline
 
 INSTANCE: evens immutable-sequence
 
+INSTANCE: evens virtual-sequence
+
 TUPLE: odds { seq read-only } ;
 
 C: <odds> odds
 
 M: odds length seq>> length 2/ ; inline
 
-M: odds nth-unsafe [ 2 * 1 + ] [ seq>> nth-unsafe ] bi* ; inline
+M: odds virtual@ [ 2 * 1 + ] [ seq>> ] bi* ; inline
 
-M: odds like seq>> like ;
-
-M: odds new-sequence seq>> new-sequence ;
+M: odds virtual-exemplar seq>> ; inline
 
 INSTANCE: odds immutable-sequence
 
+INSTANCE: odds virtual-sequence
+
 : until-empty ( seq quot -- )
     [ dup empty? ] swap until drop ; inline