diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index f6cdebcc9a..211d5d71c2 100644 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -177,7 +177,9 @@ PRIVATE> : ?first ( seq -- elt/f ) 0 swap ?nth ; inline : ?second ( seq -- elt/f ) 1 swap ?nth ; inline -: ?last ( seq -- elt/f ) [ length 1 - ] [ ?nth ] bi ; inline +: ?last ( seq -- elt/f ) + [ length 1 - ] keep over 0 < + [ 2drop f ] [ nth-unsafe ] if ; inline MIXIN: virtual-sequence GENERIC: virtual-exemplar ( seq -- seq' )