aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-014/simon-proctor/perl6/ch-1.p633
1 files changed, 33 insertions, 0 deletions
diff --git a/challenge-014/simon-proctor/perl6/ch-1.p6 b/challenge-014/simon-proctor/perl6/ch-1.p6
new file mode 100644
index 0000000000..7c1f9d2dd7
--- /dev/null
+++ b/challenge-014/simon-proctor/perl6/ch-1.p6
@@ -0,0 +1,33 @@
+#!/usr/bin/env perl6
+
+use v6;
+
+#| Generate Van Eck's sequence
+sub MAIN (
+ UInt $count, #= Amount of sequence to generate
+ UInt $start = 0 # Value to start sequnce from
+) {
+
+ my @van-ecks = lazy gather {
+ take $start;
+ my $n = 0;
+ loop {
+ if any( @van-ecks[^$n] ) == @van-ecks[$n] {
+ my $m;
+ for @van-ecks[^$n].kv.reverse -> $v, $k {
+ if $v == @van-ecks[$n] {
+ $m = $k;
+ last;
+ }
+ }
+ take $n - $m;
+ } else {
+ take 0;
+ }
+ $n++;
+ }
+ }
+
+ say @van-ecks[0..^$count].join(",");
+
+}