From: Doug Coleman Date: Sat, 8 Nov 2014 08:46:30 +0000 (-0800) Subject: basis, extra: Use zip-index. X-Git-Tag: unmaintained~3403 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=56f1b87a6f45c61b27c4ce25920f59d507124456 basis, extra: Use zip-index. --- diff --git a/basis/compiler/cfg/linearization/linearization.factor b/basis/compiler/cfg/linearization/linearization.factor index 2c083a5a82..ee18394498 100644 --- a/basis/compiler/cfg/linearization/linearization.factor +++ b/basis/compiler/cfg/linearization/linearization.factor @@ -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 ; diff --git a/basis/compiler/tree/propagation/transforms/transforms.factor b/basis/compiler/tree/propagation/transforms/transforms.factor index 689ae20202..a68e2b574f 100644 --- a/basis/compiler/tree/propagation/transforms/transforms.factor +++ b/basis/compiler/tree/propagation/transforms/transforms.factor @@ -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 diff --git a/basis/shuffle/shuffle.factor b/basis/shuffle/shuffle.factor index 92478812be..7903924361 100644 --- a/basis/shuffle/shuffle.factor +++ b/basis/shuffle/shuffle.factor @@ -8,7 +8,7 @@ IN: shuffle index-assoc ( sequence -- assoc ) - dup length iota zip >hashtable ; + zip-index >hashtable ; PRIVATE> diff --git a/extra/euler/b-rep/b-rep.factor b/extra/euler/b-rep/b-rep.factor index 8ef54c759b..e8d6e0af13 100644 --- a/extra/euler/b-rep/b-rep.factor +++ b/extra/euler/b-rep/b-rep.factor @@ -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 ; diff --git a/extra/gml/core/core.factor b/extra/gml/core/core.factor index 9266ba8e3d..ef7d5aab39 100644 --- a/extra/gml/core/core.factor +++ b/extra/gml/core/core.factor @@ -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 ; diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index bf87496965..9c7d7a557a 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -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 diff --git a/extra/sorting/extras/extras.factor b/extra/sorting/extras/extras.factor index b00e28cea7..39f45757e8 100644 --- a/extra/sorting/extras/extras.factor +++ b/extra/sorting/extras/extras.factor @@ -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