diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index de10e5c2e4..c580bbe118 100755 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -221,7 +221,8 @@ TUPLE: column seq col ; C: column M: column virtual-seq column-seq ; -M: column virtual@ dup column-col -rot column-seq nth ; +M: column virtual@ + dup column-col -rot column-seq nth bounds-check ; M: column length column-seq length ; INSTANCE: column virtual-sequence @@ -546,11 +547,6 @@ M: sequence <=> : all-eq? ( seq -- ? ) [ eq? ] monotonic? ; -: flip ( matrix -- newmatrix ) - dup empty? [ - dup first length [ dup like ] curry* map - ] unless ; - : exchange ( m n seq -- ) pick over bounds-check 2drop 2dup bounds-check 2drop exchange-unsafe ; @@ -667,6 +663,12 @@ PRIVATE> : infimum ( seq -- n ) dup first [ min ] reduce ; : supremum ( seq -- n ) dup first [ max ] reduce ; +: flip ( matrix -- newmatrix ) + dup empty? [ + dup [ length ] map infimum + [ dup like ] curry* map + ] unless ; + : sequence-hashcode ( n seq -- x ) 0 -rot [ hashcode* >fixnum swap 31 fixnum*fast fixnum+fast