basis, extra: Use zip-index.

db4
Doug Coleman 2014-11-08 00:46:30 -08:00
parent 1ce7c6a9e7
commit 56f1b87a6f
7 changed files with 7 additions and 7 deletions

View File

@ -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 ;

View File

@ -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

View File

@ -8,7 +8,7 @@ IN: shuffle
<PRIVATE
: >index-assoc ( sequence -- assoc )
dup length iota zip >hashtable ;
zip-index >hashtable ;
PRIVATE>

View File

@ -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 ;

View File

@ -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 ;

View File

@ -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

View File

@ -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