sequences: remove a -rot usage

db4
Slava Pestov 2010-02-10 15:44:15 +13:00
parent 6e34de5588
commit 1a1a61549f
2 changed files with 14 additions and 5 deletions

View File

@ -1,4 +1,4 @@
USING: arrays kernel math namespaces sequences kernel.private
USING: arrays kernel math math.order namespaces sequences kernel.private
sequences.private strings sbufs tools.test vectors assocs
generic vocabs.loader ;
IN: sequences.tests
@ -300,3 +300,12 @@ USE: make
[ t ] [ 0 array-capacity? ] unit-test
[ f ] [ -1 array-capacity? ] unit-test
[ +lt+ ] [ { 0 0 0 } { 1 1 1 } <=> ] unit-test
[ +lt+ ] [ { 0 0 0 } { 0 1 1 } <=> ] unit-test
[ +lt+ ] [ { 0 0 0 } { 0 0 0 0 } <=> ] unit-test
[ +gt+ ] [ { 1 1 1 } { 0 0 0 } <=> ] unit-test
[ +gt+ ] [ { 0 1 1 } { 0 0 0 } <=> ] unit-test
[ +gt+ ] [ { 0 0 0 0 } { 0 0 0 } <=> ] unit-test
[ +eq+ ] [ { } { } <=> ] unit-test
[ +eq+ ] [ { 1 2 3 } { 1 2 3 } <=> ] unit-test

View File

@ -586,13 +586,13 @@ PRIVATE>
[ empty? not ] filter ;
: mismatch ( seq1 seq2 -- i )
[ min-length iota ] 2keep
[ min-length ] 2keep
[ 2nth-unsafe = not ] 2curry
find drop ; inline
find-integer ; inline
M: sequence <=>
2dup mismatch
[ -rot 2nth-unsafe <=> ] [ [ length ] compare ] if* ;
[ mismatch ] 2keep pick
[ 2nth-unsafe <=> ] [ [ length ] compare nip ] if ;
: sequence= ( seq1 seq2 -- ? )
2dup [ length ] bi@ =