sequences: slightly faster sequence=.

db4
John Benediktsson 2012-07-27 21:30:03 -07:00
parent 58e39b5ce5
commit e00aaf4185
1 changed files with 10 additions and 4 deletions

View File

@ -615,18 +615,24 @@ PRIVATE>
: harvest ( seq -- newseq )
[ empty? not ] filter ;
: mismatch ( seq1 seq2 -- i )
[ min-length ] 2keep
<PRIVATE
: mismatch-unsafe ( n seq1 seq2 -- i )
[ 2nth-unsafe = not ] 2curry
find-integer ; inline
PRIVATE>
: mismatch ( seq1 seq2 -- i )
[ min-length ] 2keep mismatch-unsafe ; inline
M: sequence <=>
[ mismatch ] 2keep pick
[ 2nth-unsafe <=> ] [ [ length ] compare nip ] if ;
: sequence= ( seq1 seq2 -- ? )
2dup [ length ] same?
[ mismatch not ] [ 2drop f ] if ; inline
2dup [ length ] bi@ dupd =
[ -rot mismatch-unsafe not ] [ 3drop f ] if ; inline
ERROR: assert-sequence got expected ;