changeset 269:0011c9a8c0ec

Add repeated
author Chris Cannam
date Thu, 23 May 2013 14:39:40 +0100
parents b5cd42899526
children d7dd391a90fd
files yetilab/vector/test/test_vector.yeti yetilab/vector/vector.yeti
diffstat 2 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/yetilab/vector/test/test_vector.yeti	Thu May 23 14:39:18 2013 +0100
+++ b/yetilab/vector/test/test_vector.yeti	Thu May 23 14:39:40 2013 +0100
@@ -90,6 +90,13 @@
         vec.equal (vec.resizedTo 2 (vec.fromList [1,2,3])) (vec.fromList [1,2]);
 ),
 
+"repeated": \(
+    vec.equal (vec.repeated (vec.fromList []) 2) (vec.fromList []) and
+        vec.equal (vec.repeated (vec.fromList [1,2,3]) 0) (vec.fromList []) and
+        vec.equal (vec.repeated (vec.fromList [1,2,3]) 1) (vec.fromList [1,2,3]) and
+        vec.equal (vec.repeated (vec.fromList [1,2,3]) 2) (vec.fromList [1,2,3,1,2,3])
+),
+
 "reversed": \(
     vec.equal (vec.reversed (vec.fromList [])) (vec.fromList []) and
         vec.equal (vec.reversed (vec.fromList [1,2,3])) (vec.fromList [3,2,1]) and
--- a/yetilab/vector/vector.yeti	Thu May 23 14:39:18 2013 +0100
+++ b/yetilab/vector/vector.yeti	Thu May 23 14:39:40 2013 +0100
@@ -96,6 +96,9 @@
     done;
     vout);
 
+repeated v n is ~double[] -> number -> ~double[] =
+    concat (map \(v) [1..n]);
+
 {
     zeros,
     consts,
@@ -115,6 +118,7 @@
     slice,
     resizedTo,
     reversed,
+    repeated,
     concat,
 } as {
     zeros is number -> vector,
@@ -135,6 +139,7 @@
     slice is vector -> number -> number -> vector,
     resizedTo is number -> vector -> vector,
     reversed is vector -> vector,
+    repeated is vector -> number -> vector,
     concat is list?<vector> -> vector,
 }