aboutsummaryrefslogtreecommitdiff
path: root/challenge-070
diff options
context:
space:
mode:
authorSimon Proctor <simon.proctor@zoopla.co.uk>2020-07-21 09:35:28 +0100
committerSimon Proctor <simon.proctor@zoopla.co.uk>2020-07-21 09:35:28 +0100
commit25c3b922e82ddb7e31f6a6e98a0deef047b81182 (patch)
tree3cb13a286e1407ca9c3fb129ce451b94aa3dda22 /challenge-070
parentae71ff22a71c3718321f708b656dc9b6730e42f6 (diff)
downloadperlweeklychallenge-club-25c3b922e82ddb7e31f6a6e98a0deef047b81182.tar.gz
perlweeklychallenge-club-25c3b922e82ddb7e31f6a6e98a0deef047b81182.tar.bz2
perlweeklychallenge-club-25c3b922e82ddb7e31f6a6e98a0deef047b81182.zip
Challenge 2
Diffstat (limited to 'challenge-070')
-rw-r--r--challenge-070/simon-proctor/raku/ch-2.raku18
1 files changed, 18 insertions, 0 deletions
diff --git a/challenge-070/simon-proctor/raku/ch-2.raku b/challenge-070/simon-proctor/raku/ch-2.raku
new file mode 100644
index 0000000000..b32eef2438
--- /dev/null
+++ b/challenge-070/simon-proctor/raku/ch-2.raku
@@ -0,0 +1,18 @@
+#!/usr/bin/env raku
+
+use v6;
+
+#| Generate ther Gray Code of length N
+sub MAIN (
+ Int $N where 2 <= * <= 5 #= Length of Gray code sequence to generate
+){
+ say gray-bins( $N ).map( *.parse-base(2) );
+}
+
+multi sub gray-bins ( 1 ) { [ "0", "1" ] }
+
+multi sub gray-bins ( Int $n ) {
+ my @prev = gray-bins( $n - 1 );
+
+ [ |@prev.map({ "0{$_}" }), |@prev.reverse.map({"1{$_}"}) ];
+}