assocs: Make the output from zip, zip-index, and map-index the same type as the first seq/assoc argument. Add tests.
parent
7cfa9d9518
commit
45e7fd7921
|
@ -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
|
||||
|
|
|
@ -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 ;
|
||||
|
|
Loading…
Reference in New Issue