]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences: fix map-from and map-from-as
authorDoug Coleman <doug.coleman@gmail.com>
Thu, 25 Aug 2022 22:06:07 +0000 (18:06 -0400)
committerDoug Coleman <doug.coleman@gmail.com>
Sun, 26 Feb 2023 23:11:03 +0000 (17:11 -0600)
core/sequences/sequences-tests.factor
extra/sequences/extras/extras.factor

index 0eada182af6822dcff569e68fb8a224d5c2bb19f..6d0a132139224895fd3f0db962c82d708fd69b90 100644 (file)
@@ -444,6 +444,12 @@ M: bogus-hashcode hashcode* 2drop 0 >bignum ;
     BV{ 11 23 35 }
 } [ { 11 22 33 } [ + ] BV{ } map-index-as ] unit-test
 
+{ { 0 400 900 } }
+[ { 10 20 30 } [ sq ] 1 map-from ] unit-test
+
+{ V{ 0 400 900 } }
+[ { 10 20 30 } [ sq ] 1 V{ } map-from-as ] unit-test
+
 { t } [ { } { 99 88 } [ <= ] 2all? ] unit-test
 
 { f } [ { } { 99 88 } [ <= ] 2any? ] unit-test
index c2fe02c644b6df46dea756201c5999e5dc4fe074..f5a2a81823bd706ffa75fa98e7f780f09f4561b5 100644 (file)
@@ -269,10 +269,10 @@ PRIVATE>
 : setup-each-from ( seq quot -- n quot )
     [ [ length ] keep [ nth-unsafe ] curry ] dip compose ; inline
 
-: map-from-as ( ... from seq quot: ( ... elt -- ... newelt ) exemplar -- ... newseq )
-    [ sequence-operator ] dip map-integers-as ; inline
+: map-from-as ( ... seq quot: ( ... elt -- ... newelt ) from exemplar -- ... newseq )
+    -rotd [ sequence-operator nipd ] dip map-integers-from-as ; inline
 
-: map-from ( ... from seq quot: ( ... elt -- ... newelt ) -- ... newseq )
+: map-from ( ... seq quot: ( ... elt -- ... newelt ) from -- ... newseq )
     pick map-from-as ; inline
 
 : map-if ( ... seq if-quot: ( ... elt -- ... ? ) map-quot: ( ... elt -- ... newelt ) -- ... newseq )