]> gitweb.factorcode.org Git - factor.git/commitdiff
Refactor columns, sequences.{extra, frozen, rotated} using sequence-view
authornomennescio <nomennescio@factorcode.org>
Fri, 6 Oct 2023 04:05:30 +0000 (06:05 +0200)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 13 Oct 2023 16:09:30 +0000 (09:09 -0700)
basis/columns/columns.factor
extra/sequences/extras/extras.factor
extra/sequences/frozen/frozen.factor
extra/sequences/rotated/rotated.factor

index 15cb14beb70c8ea38764049cb0bd86b75e879327..155dba83500ec5374b2d541cae0bc03da550f01e 100644 (file)
@@ -4,15 +4,11 @@ USING: sequences kernel accessors ;
 IN: columns
 
 ! A column of a matrix
-TUPLE: column seq col ;
+TUPLE: column < sequence-view col ;
 
 C: <column> column
 
-M: column virtual-exemplar seq>> ;
 M: column virtual@ [ col>> swap ] [ seq>> ] bi nth bounds-check ;
-M: column length seq>> length ;
-
-INSTANCE: column virtual-sequence
 
 : <flipped> ( seq -- seq' )
     dup empty? [ dup first length [ <column> ] with map-integers ] unless ;
index 333236e74085ca8bbfb622c5783de106c08aef3c..10bf6c36a8501478ed9e235951c0d9f0af203a7f 100644 (file)
@@ -579,7 +579,7 @@ PRIVATE>
 : 2map-index ( ... seq1 seq2 quot: ( ... elt1 elt2 index -- ... newelt ) -- ... newseq )
     pick [ 2sequence-index-iterator ] dip map-integers-as ; inline
 
-TUPLE: evens { seq read-only } ;
+TUPLE: evens < sequence-view ;
 
 C: <evens> evens
 
@@ -587,11 +587,7 @@ M: evens length seq>> length 1 + 2/ ; inline
 
 M: evens virtual@ [ 2 * ] [ seq>> ] bi* ; inline
 
-M: evens virtual-exemplar seq>> ; inline
-
-INSTANCE: evens virtual-sequence
-
-TUPLE: odds { seq read-only } ;
+TUPLE: odds < sequence-view ;
 
 C: <odds> odds
 
@@ -599,10 +595,6 @@ M: odds length seq>> length 2/ ; inline
 
 M: odds virtual@ [ 2 * 1 + ] [ seq>> ] bi* ; inline
 
-M: odds virtual-exemplar seq>> ; inline
-
-INSTANCE: odds virtual-sequence
-
 : until-empty ( seq quot -- )
     [ dup empty? ] swap until drop ; inline
 
index 1b37e0575e9d7120483cbcc889c63beba8c484b3..5088d6e2b69cf13ed1f4646ae3657fed831a39dc 100644 (file)
@@ -3,16 +3,8 @@
 USING: accessors sequences ;
 IN: sequences.frozen
 
-TUPLE: frozen { seq read-only } ;
+TUPLE: frozen < sequence-view ;
 
 C: <frozen> frozen
 
-M: frozen virtual@ seq>> ;
-
-M: frozen virtual-exemplar seq>> ;
-
-M: frozen length seq>> length ;
-
-INSTANCE: frozen virtual-sequence
-
 INSTANCE: frozen immutable-sequence
index e6cb9cdb24f4d61606064980fb0275c3b1960132..f9aea96acee31b5ea047c699be3afc19345a0564 100644 (file)
@@ -3,14 +3,11 @@
 USING: accessors kernel math sequences ;
 IN: sequences.rotated
 
-TUPLE: rotated
-{ seq read-only }
+TUPLE: rotated < sequence-view
 { n integer read-only } ;
 
 C: <rotated> rotated
 
-M: rotated length seq>> length ;
-
 M: rotated virtual@
     [ n>> + ] [ seq>> ] bi [
         length over 0 < [ + ] [
@@ -18,9 +15,5 @@ M: rotated virtual@
         ] if
     ] keep ;
 
-M: rotated virtual-exemplar seq>> ;
-
-INSTANCE: rotated virtual-sequence
-
 : all-rotations ( seq -- seq' )
     dup length <iota> [ <rotated> ] with map ;