]> gitweb.factorcode.org Git - factor.git/blobdiff - core/sequences/sequences.factor
sequences: faster last2 and some tests
[factor.git] / core / sequences / sequences.factor
index 7b3478b3724494810a11a87c9081d3df6fff848e..63d4fa309217b024bfe38b7e6e87e481f688cfde 100644 (file)
@@ -840,11 +840,11 @@ PRIVATE>
 : append! ( seq1 seq2 -- seq1 ) over push-all ; inline
 
 : last ( seq -- elt )
-    index-of-last
-    over 0 < [ bounds-error ] [ nth-unsafe ] if ; inline
+    index-of-last bounds-check-head nth-unsafe ; inline
 
 : last2 ( seq -- penultimate ultimate )
-    2 tail* first2 ; inline
+    index-of-last [ [ 1 - ] keep ] dip pick 0 <
+    [ nip bounds-error ] [ '[ _ nth-unsafe ] bi@ ] if ; inline
 
 <PRIVATE