From 17386d060845b2a9d326d04d6d96088b905fcf57 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Fri, 17 Jul 2015 16:41:56 -0700 Subject: [PATCH] Revert "sequences: simplify find-from and find-last-from." This reverts commit 903b8eec0bb10317ca00cb0fc82c4d7443cba252. --- core/sequences/sequences.factor | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index 06b1b0d4e9..8f1bcaa2d3 100644 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -422,9 +422,21 @@ PRIVATE> : (find) ( seq quot quot' -- i elt ) pick [ [ (each) ] dip call ] dip finish-find ; inline +: (find-from) ( n seq quot quot' -- i elt ) + [ 2dup bounds-check? ] 2dip + [ (find) ] 2curry + [ 2drop f f ] + if ; inline + : (find-index) ( seq quot quot' -- i elt ) pick [ [ (each-index) ] dip call ] dip finish-find ; inline +: (find-index-from) ( n seq quot quot' -- i elt ) + [ 2dup bounds-check? ] 2dip + [ (find-index) ] 2curry + [ 2drop f f ] + if ; inline + : (accumulate) ( seq identity quot -- identity seq quot ) swapd [ curry keep ] curry ; inline @@ -494,19 +506,19 @@ PRIVATE> [ pick ] dip swap 3map-as ; inline : find-from ( ... n seq quot: ( ... elt -- ... ? ) -- ... i elt ) - [ (find-integer) ] (find) ; inline + [ (find-integer) ] (find-from) ; inline : find ( ... seq quot: ( ... elt -- ... ? ) -- ... i elt ) [ find-integer ] (find) ; inline : find-last-from ( ... n seq quot: ( ... elt -- ... ? ) -- ... i elt ) - [ nip find-last-integer ] (find) ; inline + [ nip find-last-integer ] (find-from) ; inline : find-last ( ... seq quot: ( ... elt -- ... ? ) -- ... i elt ) [ [ 1 - ] dip find-last-integer ] (find) ; inline : find-index-from ( ... n seq quot: ( ... elt i -- ... ? ) -- ... i elt ) - [ (find-integer) ] (find-index) ; inline + [ (find-integer) ] (find-index-from) ; inline : find-index ( ... seq quot: ( ... elt i -- ... ? ) -- ... i elt ) [ find-integer ] (find-index) ; inline