basis, extra: Use zip-index.
parent
1ce7c6a9e7
commit
56f1b87a6f
|
@ -87,4 +87,4 @@ SYMBOL: numbers
|
|||
: block-number ( bb -- n ) numbers get at ;
|
||||
|
||||
: number-blocks ( bbs -- )
|
||||
[ 2array ] map-index >hashtable numbers set ;
|
||||
zip-index >hashtable numbers set ;
|
||||
|
|
|
@ -218,7 +218,7 @@ ERROR: bad-partial-eval quot word ;
|
|||
\ index [
|
||||
dup sequence? [
|
||||
dup length 4 >= [
|
||||
dup length iota zip >hashtable '[ _ at ]
|
||||
zip-index >hashtable '[ _ at ]
|
||||
] [ drop f ] if
|
||||
] [ drop f ] if
|
||||
] 1 define-partial-eval
|
||||
|
|
|
@ -8,7 +8,7 @@ IN: shuffle
|
|||
<PRIVATE
|
||||
|
||||
: >index-assoc ( sequence -- assoc )
|
||||
dup length iota zip >hashtable ;
|
||||
zip-index >hashtable ;
|
||||
|
||||
PRIVATE>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ math math.vectors math.matrices assocs arrays hashtables ;
|
|||
FROM: namespaces => set ;
|
||||
IN: euler.b-rep
|
||||
|
||||
: >index-hash ( seq -- hash ) [ 2array ] map-index >hashtable ; inline
|
||||
: >index-hash ( seq -- hash ) zip-index >hashtable ; inline
|
||||
|
||||
TUPLE: b-edge < edge sharpness macro ;
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ GML: slice ( array n k -- slice )
|
|||
GML:: subarray ( array n k -- slice )
|
||||
k n k + array subseq ;
|
||||
GML: sort-number-permutation ( array -- permutation )
|
||||
[ 2array ] map-index sort-keys reverse values ;
|
||||
zip-index sort-keys reverse values ;
|
||||
|
||||
! Dictionaries
|
||||
ERROR: not-a-dict obj ;
|
||||
|
|
|
@ -372,7 +372,7 @@ PRIVATE>
|
|||
] keep ; inline
|
||||
|
||||
: arg-sort ( seq -- indices )
|
||||
dup length iota zip sort-keys values ;
|
||||
zip-index sort-keys values ;
|
||||
|
||||
: first= ( seq elt -- ? ) [ first ] dip = ; inline
|
||||
: second= ( seq elt -- ? ) [ second ] dip = ; inline
|
||||
|
|
|
@ -3,7 +3,7 @@ math.order sequences sequences.extras sequences.private sorting ;
|
|||
IN: sorting.extras
|
||||
|
||||
: argsort ( seq quot: ( obj1 obj2 -- <=> ) -- sortedseq )
|
||||
[ dup length iota zip ] dip
|
||||
[ zip-index ] dip
|
||||
[ [ first-unsafe ] bi@ ] prepose
|
||||
sort [ second-unsafe ] map! ; inline
|
||||
|
||||
|
|
Loading…
Reference in New Issue