From 454bffc14eea4569416539fad26a15e0b5e4dc56 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Thu, 12 Sep 2013 12:47:04 -0700 Subject: [PATCH] sequences.extras: adding nth* which is nth from the end. --- extra/sequences/extras/extras-tests.factor | 2 ++ extra/sequences/extras/extras.factor | 3 +++ 2 files changed, 5 insertions(+) diff --git a/extra/sequences/extras/extras-tests.factor b/extra/sequences/extras/extras-tests.factor index 0ee8e5242f..d01f60752e 100644 --- a/extra/sequences/extras/extras-tests.factor +++ b/extra/sequences/extras/extras-tests.factor @@ -169,3 +169,5 @@ IN: sequences.extras.tests { "foo" " " } [ "foo " [ blank? ] cut-when ] unit-test { "" " foo" } [ " foo" [ blank? ] cut-when ] unit-test { "foo" " bar" } [ "foo bar" [ blank? ] cut-when ] unit-test + +{ { 4 0 3 1 2 } } [ { 0 4 1 3 2 } 5 iota [ nth* ] curry map ] unit-test diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index fc6e90744a..03b1fcda5c 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -486,3 +486,6 @@ PRIVATE> : cut-when ( ... seq quot: ( ... elt -- ... ? ) -- ... before after ) [ find drop ] 2keep drop swap [ cut ] [ f over like ] if* ; inline + +: nth* ( n seq -- elt ) + [ length 1 - swap - ] [ nth ] bi ; inline