diff options
| author | Simon Proctor <simon.proctor@zoopla.co.uk> | 2020-07-21 09:35:28 +0100 |
|---|---|---|
| committer | Simon Proctor <simon.proctor@zoopla.co.uk> | 2020-07-21 09:35:28 +0100 |
| commit | 25c3b922e82ddb7e31f6a6e98a0deef047b81182 (patch) | |
| tree | 3cb13a286e1407ca9c3fb129ce451b94aa3dda22 /challenge-070 | |
| parent | ae71ff22a71c3718321f708b656dc9b6730e42f6 (diff) | |
| download | perlweeklychallenge-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.raku | 18 |
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{$_}"}) ]; +} |
