sequences.extras: adding map-find-index.
parent
b412cab5c7
commit
6c0bb0f343
|
@ -146,3 +146,6 @@ IN: sequences.extras.tests
|
||||||
{ V{ 1 } } [ 1 flatten1 ] unit-test
|
{ V{ 1 } } [ 1 flatten1 ] unit-test
|
||||||
{ { 1 2 3 } } [ { 1 2 3 } flatten1 ] unit-test
|
{ { 1 2 3 } } [ { 1 2 3 } flatten1 ] unit-test
|
||||||
{ { 1 2 3 { { 4 } } } } [ { 1 { 2 } { 3 { { 4 } } } } flatten1 ] unit-test
|
{ { 1 2 3 { { 4 } } } } [ { 1 { 2 } { 3 { { 4 } } } } flatten1 ] unit-test
|
||||||
|
|
||||||
|
{ t 3 3 } [ 10 iota [ [ odd? ] [ 1 > ] bi* and ] map-find-index ] unit-test
|
||||||
|
{ f f f } [ 10 iota [ [ odd? ] [ 9 > ] bi* and ] map-find-index ] unit-test
|
||||||
|
|
|
@ -365,3 +365,10 @@ PRIVATE>
|
||||||
] [ , ] if
|
] [ , ] if
|
||||||
]
|
]
|
||||||
] keep dup branch? [ drop f ] unless make ;
|
] keep dup branch? [ drop f ] unless make ;
|
||||||
|
|
||||||
|
: (map-find-index) ( seq quot find-quot -- result elt index )
|
||||||
|
[ [ f ] 2dip [ [ nip ] 2dip call dup ] curry ] dip call
|
||||||
|
[ [ [ drop f ] unless ] keep ] dip ; inline
|
||||||
|
|
||||||
|
: map-find-index ( ... seq quot: ( ... elt index -- ... result/f ) -- ... result elt index )
|
||||||
|
[ find-index ] (map-find-index) ; inline
|
||||||
|
|
Loading…
Reference in New Issue