diff options
| author | Simon Proctor <simon.proctor@gmail.com> | 2019-06-24 12:26:39 +0100 |
|---|---|---|
| committer | Simon Proctor <simon.proctor@gmail.com> | 2019-06-24 12:26:39 +0100 |
| commit | d59694947b4f327ef3ea7258385481145bb1b150 (patch) | |
| tree | b33aeccb6feed76d17b049194378edf94834b4f2 | |
| parent | 89e4af0c5ed095fd84ec57b0da59f6335287e057 (diff) | |
| download | perlweeklychallenge-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.p6 | 33 |
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(","); + +} |
