sorting.extras: adding 'argsort'.
parent
04794fe715
commit
dfe06d3070
|
@ -0,0 +1,7 @@
|
||||||
|
USING: kernel math.order sequences tools.test ;
|
||||||
|
IN: sorting.extras
|
||||||
|
|
||||||
|
{ { 0 2 1 } } [ { 10 30 20 } [ <=> ] argsort ] unit-test
|
||||||
|
{ { 2 0 1 } } [
|
||||||
|
{ "hello" "goodbye" "yo" } [ [ length ] bi@ <=> ] argsort
|
||||||
|
] unit-test
|
|
@ -0,0 +1,7 @@
|
||||||
|
USING: assocs kernel sequences sequences.private sorting ;
|
||||||
|
IN: sorting.extras
|
||||||
|
|
||||||
|
: argsort ( seq quot: ( obj1 obj2 -- <=> ) -- sortedseq )
|
||||||
|
[ dup length iota zip ] dip
|
||||||
|
[ [ first-unsafe ] bi@ ] prepose
|
||||||
|
sort [ 1 swap nth-unsafe ] map! ; inline
|
Loading…
Reference in New Issue