]> gitweb.factorcode.org Git - factor.git/commitdiff
assocs: Make the output from zip, zip-index, and map-index the same type as the first...
authorDoug Coleman <doug.coleman@gmail.com>
Sun, 9 Nov 2014 02:26:21 +0000 (18:26 -0800)
committerDoug Coleman <doug.coleman@gmail.com>
Sun, 9 Nov 2014 02:26:21 +0000 (18:26 -0800)
core/assocs/assocs-tests.factor
core/assocs/assocs.factor

index da1deb0d8a6834c45273a1c2cc96a923ab90c8f2..dc036799b4c0bb2a02624613928364b272e05490 100644 (file)
@@ -218,6 +218,10 @@ unit-test
     { 11 23 35 }
 } [ { 11 22 33 } [ + ] map-index ] unit-test
 
+{
+    V{ 11 23 35 }
+} [ V{ 11 22 33 } [ + ] map-index ] unit-test
+
 {
     V{ 11 23 35 }
 } [ { 11 22 33 } [ + ] V{ } map-index-as ] unit-test
@@ -235,6 +239,10 @@ unit-test
     { { 1 4 } { 2 5 } { 3 6 } }
 } [ { 1 2 3 } { 4 5 6 } zip ] unit-test
 
+{
+    V{ { 1 4 } { 2 5 } { 3 6 } }
+} [ V{ 1 2 3 } { 4 5 6 } zip ] unit-test
+
 {
     { { 1 4 } { 2 5 } { 3 6 } }
 } [ { 1 2 3 } { 4 5 6 } { } zip-as ] unit-test
@@ -267,6 +275,10 @@ unit-test
     { { 11 0 } { 22 1 } { 33 2 } }
 } [ { 11 22 33 } zip-index ] unit-test
 
+{
+    V{ { 11 0 } { 22 1 } { 33 2 } }
+} [ V{ 11 22 33 } zip-index ] unit-test
+
 {
     { { 11 0 } { 22 1 } { 33 2 } }
 } [ { 11 22 33 } { } zip-index-as ] unit-test
index cf458c07001e5a43ec1d622215bf31dc4a9f220b..747c620d5e074b57f7d46e41622060606fa8e716 100644 (file)
@@ -207,7 +207,7 @@ M: assoc value-at* swap [ = nip ] curry assoc-find nip ;
     ] if ; inline
 
  : zip ( keys values -- alist )
-     { } zip-as ; inline
+     over zip-as ; inline
 
 : map-index-as ( ... seq quot: ( ... elt index -- ... newelt ) exemplar -- ... obj )
     dup sequence? [
@@ -219,13 +219,13 @@ M: assoc value-at* swap [ = nip ] curry assoc-find nip ;
     ] if ; inline
 
 : map-index ( ... seq quot: ( ... elt index -- ... newelt ) -- ... newseq )
-    { } map-index-as ; inline
+    over map-index-as ; inline
 
 : zip-index-as ( values exemplar -- obj )
     [ [ 2array ] ] dip map-index-as ; inline
 
 : zip-index ( values -- alist )
-    { } zip-index-as ; inline
+    dup zip-index-as ; inline
 
 : unzip ( assoc -- keys values )
     dup assoc-empty? [ drop { } { } ] [ >alist flip first2 ] if ;