From a1b38863272e88583b1edef6436b63da705077c9 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Wed, 1 Apr 2015 14:37:00 -0700 Subject: [PATCH] tools.seq: adding "seq" tool. --- extra/tools/seq/authors.txt | 1 + extra/tools/seq/deploy.factor | 15 +++++++++++++++ extra/tools/seq/seq.factor | 23 +++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 extra/tools/seq/authors.txt create mode 100644 extra/tools/seq/deploy.factor create mode 100644 extra/tools/seq/seq.factor diff --git a/extra/tools/seq/authors.txt b/extra/tools/seq/authors.txt new file mode 100644 index 0000000000..e091bb8164 --- /dev/null +++ b/extra/tools/seq/authors.txt @@ -0,0 +1 @@ +John Benediktsson diff --git a/extra/tools/seq/deploy.factor b/extra/tools/seq/deploy.factor new file mode 100644 index 0000000000..92ece2d1af --- /dev/null +++ b/extra/tools/seq/deploy.factor @@ -0,0 +1,15 @@ +USING: tools.deploy.config ; +H{ + { deploy-name "seq" } + { deploy-ui? f } + { deploy-c-types? f } + { deploy-console? t } + { deploy-unicode? f } + { "stop-after-last-window?" t } + { deploy-io 3 } + { deploy-reflection 6 } + { deploy-word-props? f } + { deploy-math? t } + { deploy-threads? t } + { deploy-word-defs? f } +} diff --git a/extra/tools/seq/seq.factor b/extra/tools/seq/seq.factor new file mode 100644 index 0000000000..4969a54879 --- /dev/null +++ b/extra/tools/seq/seq.factor @@ -0,0 +1,23 @@ +! Copyright (C) 2011 John Benediktsson +! See http://factorcode.org/license.txt for BSD license + +USING: combinators command-line io kernel math.order math.parser +math.ranges namespaces sequences ; + +IN: tools.seq + +: usage ( -- ) + "Usage: seq [first [incr]] last" print ; + +: seq ( a step b -- ) + swap [ number>string print ] each ; + +: run-seq ( -- ) + command-line get dup length { + { 1 [ first string>number [ 1 1 ] dip seq ] } + { 2 [ first2 [ string>number ] bi@ 2dup before? 1 -1 ? swap seq ] } + { 3 [ first3 [ string>number ] tri@ seq ] } + [ 2drop usage ] + } case ; + +MAIN: run-seq -- 2.34.1