aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Proctor <simon.proctor@gmail.com>2019-06-24 12:26:39 +0100
committerSimon Proctor <simon.proctor@gmail.com>2019-06-24 12:26:39 +0100
commitd59694947b4f327ef3ea7258385481145bb1b150 (patch)
treeb33aeccb6feed76d17b049194378edf94834b4f2
parent89e4af0c5ed095fd84ec57b0da59f6335287e057 (diff)
downloadperlweeklychallenge-club-d59694947b4f327ef3ea7258385481145bb1b150.tar.gz
perlweeklychallenge-club-d59694947b4f327ef3ea7258385481145bb1b150.tar.bz2
perlweeklychallenge-club-d59694947b4f327ef3ea7258385481145bb1b150.zip
Challenge 1. Van Eck's Sequnce
-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(",");
+
+}