]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences: faster head? and tail?.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 7 Feb 2014 04:49:39 +0000 (20:49 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 7 Feb 2014 04:49:39 +0000 (20:49 -0800)
core/sequences/sequences.factor

index ea035249d6f56f214effcf2f8c941b0da2287834..07bc535793306bf0dd17001481733328f26ba527 100644 (file)
@@ -864,8 +864,8 @@ PRIVATE>
 : pad-tail ( seq n elt -- padded )
     [ append ] padding ;
 
-: shorter? ( seq1 seq2 -- ? ) [ length ] bi@ < ;
-: longer? ( seq1 seq2 -- ? ) [ length ] bi@ > ;
+: shorter? ( seq1 seq2 -- ? ) [ length ] bi@ < ; inline
+: longer? ( seq1 seq2 -- ? ) [ length ] bi@ > ; inline
 : shorter ( seq1 seq2 -- seq ) [ [ length ] bi@ <= ] 2keep ? ; inline
 : longer ( seq1 seq2 -- seq ) [ [ length ] bi@ >= ] 2keep ? ; inline
 
@@ -873,14 +873,16 @@ PRIVATE>
     2dup shorter? [
         2drop f
     ] [
-        [ nip ] [ length head-slice ] 2bi sequence=
+        [ length [ head-slice ] keep swap ] keep
+        mismatch-unsafe not
     ] if ;
 
 : tail? ( seq end -- ? )
     2dup shorter? [
         2drop f
     ] [
-        [ nip ] [ length tail-slice* ] 2bi sequence=
+        [ length [ tail-slice* ] keep swap ] keep
+        mismatch-unsafe not
     ] if ;
 
 : cut-slice ( seq n -- before-slice after-slice )