| 
									
										
										
										
											2012-08-06 13:59:40 -04:00
										 |  |  | 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
 | 
					
						
							| 
									
										
										
										
											2012-09-19 13:23:58 -04:00
										 |  |  |     sort [ second-unsafe ] map! ; inline
 | 
					
						
							| 
									
										
										
										
											2013-04-01 21:35:05 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | : map-sort ( ... seq quot: ( ... elt -- ... key ) -- ... sortedseq )
 | 
					
						
							| 
									
										
										
										
											2013-04-01 23:31:34 -04:00
										 |  |  |     [ map ] curry keep zip [ first-unsafe ] sort-with | 
					
						
							|  |  |  |     [ second-unsafe ] map ; inline
 |