]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.generalizations: adding (nsequence).
authorJohn Benediktsson <mrjbq7@gmail.com>
Sun, 19 May 2019 23:31:19 +0000 (16:31 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 19 May 2019 23:31:19 +0000 (16:31 -0700)
basis/sequences/generalizations/generalizations-tests.factor
basis/sequences/generalizations/generalizations.factor

index a0e3b02b7591be1c1a5e5bb1fb0806e68b395e42..55513bedbad180893d96fcc4f4f445875629a0e0 100644 (file)
@@ -11,6 +11,7 @@ IN: sequences.generalizations.tests
 { "a" } [ { "a" } 1 firstn ] unit-test
 
 { [ 1 2 ] } [ 1 2 2 [ ] nsequence ] unit-test
+{ { 1 2 3 4 5 } } [ 1 2 3 4 5 { 0 0 0 0 0 } 5 (nsequence) ] unit-test
 
 { { 1 2 3 4 } } [ { 1 } { 2 } { 3 } { 4 } 4 nappend ] unit-test
 { V{ 1 2 3 4 } } [ { 1 } { 2 } { 3 } { 4 } 4 V{ } nappend-as ] unit-test
index ef83ab7e0d21c9fa79aa8b465acea4404a515476..207d7e839383cf98d582998a831a039403be88fc 100644 (file)
@@ -1,11 +1,13 @@
 ! Copyright (C) 2009 Joe Groff.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel sequences sequences.private math
-combinators macros math.order math.ranges quotations fry effects
-memoize.private generalizations ;
+USING: combinators fry generalizations kernel macros math
+math.order memoize.private sequences sequences.private ;
 IN: sequences.generalizations
 
-MACRO: nsequence ( n seq -- quot )
+MACRO: (nsequence) ( n -- quot )
+    <iota> reverse [ '[ [ _ swap set-nth-unsafe ] keep ] ] map concat ;
+
+MACRO: nsequence ( n exemplar -- quot )
     [ [nsequence] ] keep '[ @ _ like ] ;
 
 MACRO: narray ( n -- quot )