diff options
| author | Mark A <andemark@a-iot1t.uch.ad.pvt> | 2021-05-10 03:58:53 -0600 |
|---|---|---|
| committer | Mark A <andemark@a-iot1t.uch.ad.pvt> | 2021-05-10 03:58:53 -0600 |
| commit | 9af03c6853b679b6cbb724e313f76c0b4e62df66 (patch) | |
| tree | 037b1ba3a1a500488392969de8f9ef0d812f617f /challenge-112/mark-anderson | |
| parent | 7c3e4b829100a613a3dc05c4a378c351f2bfcced (diff) | |
| download | perlweeklychallenge-club-9af03c6853b679b6cbb724e313f76c0b4e62df66.tar.gz perlweeklychallenge-club-9af03c6853b679b6cbb724e313f76c0b4e62df66.tar.bz2 perlweeklychallenge-club-9af03c6853b679b6cbb724e313f76c0b4e62df66.zip | |
Challenge 112 Solutions (Raku)
Diffstat (limited to 'challenge-112/mark-anderson')
| -rw-r--r-- | challenge-112/mark-anderson/raku/ch-1.raku | 10 | ||||
| -rw-r--r-- | challenge-112/mark-anderson/raku/ch-2.raku | 137 |
2 files changed, 147 insertions, 0 deletions
diff --git a/challenge-112/mark-anderson/raku/ch-1.raku b/challenge-112/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..9e7a0b29ef --- /dev/null +++ b/challenge-112/mark-anderson/raku/ch-1.raku @@ -0,0 +1,10 @@ +#!/usr/bin/env raku + +use Test; +plan 3; + +is IO::Spec::Unix.canonpath("/a/"), "/a"; + +is IO::Spec::Unix.canonpath("/a/b//c/"), "/a/b/c"; + +is IO::Spec::Unix.canonpath("/a/b/c/../..", :parent), "/a"; diff --git a/challenge-112/mark-anderson/raku/ch-2.raku b/challenge-112/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..5f381b8fba --- /dev/null +++ b/challenge-112/mark-anderson/raku/ch-2.raku @@ -0,0 +1,137 @@ +#!/usr/bin/env raku + +multi MAIN +{ + use Test; + plan 6; + + is stairs(3).elems, 3; + + is stairs(4).elems, 5; + + is stairs(10).elems, 89; + + is-deeply stairs(3), ((1, 1, 1), + (1, 2), + (2, 1))>>.Seq; + + is-deeply stairs(4), ((1, 1, 1, 1), + (1, 1, 2), + (1, 2, 1), + (2, 1, 1), + (2, 2))>>.Seq; + + is-deeply stairs(10), ((1, 1, 1, 1, 1, 1, 1, 1, 1, 1), + (1, 1, 1, 1, 1, 1, 1, 1, 2), + (1, 1, 1, 1, 1, 1, 1, 2, 1), + (1, 1, 1, 1, 1, 1, 2, 1, 1), + (1, 1, 1, 1, 1, 1, 2, 2), + (1, 1, 1, 1, 1, 2, 1, 1, 1), + (1, 1, 1, 1, 1, 2, 1, 2), + (1, 1, 1, 1, 1, 2, 2, 1), + (1, 1, 1, 1, 2, 1, 1, 1, 1), + (1, 1, 1, 1, 2, 1, 1, 2), + (1, 1, 1, 1, 2, 1, 2, 1), + (1, 1, 1, 1, 2, 2, 1, 1), + (1, 1, 1, 1, 2, 2, 2), + (1, 1, 1, 2, 1, 1, 1, 1, 1), + (1, 1, 1, 2, 1, 1, 1, 2), + (1, 1, 1, 2, 1, 1, 2, 1), + (1, 1, 1, 2, 1, 2, 1, 1), + (1, 1, 1, 2, 1, 2, 2), + (1, 1, 1, 2, 2, 1, 1, 1), + (1, 1, 1, 2, 2, 1, 2), + (1, 1, 1, 2, 2, 2, 1), + (1, 1, 2, 1, 1, 1, 1, 1, 1), + (1, 1, 2, 1, 1, 1, 1, 2), + (1, 1, 2, 1, 1, 1, 2, 1), + (1, 1, 2, 1, 1, 2, 1, 1), + (1, 1, 2, 1, 1, 2, 2), + (1, 1, 2, 1, 2, 1, 1, 1), + (1, 1, 2, 1, 2, 1, 2), + (1, 1, 2, 1, 2, 2, 1), + (1, 1, 2, 2, 1, 1, 1, 1), + (1, 1, 2, 2, 1, 1, 2), + (1, 1, 2, 2, 1, 2, 1), + (1, 1, 2, 2, 2, 1, 1), + (1, 1, 2, 2, 2, 2), + (1, 2, 1, 1, 1, 1, 1, 1, 1), + (1, 2, 1, 1, 1, 1, 1, 2), + (1, 2, 1, 1, 1, 1, 2, 1), + (1, 2, 1, 1, 1, 2, 1, 1), + (1, 2, 1, 1, 1, 2, 2), + (1, 2, 1, 1, 2, 1, 1, 1), + (1, 2, 1, 1, 2, 1, 2), + (1, 2, 1, 1, 2, 2, 1), + (1, 2, 1, 2, 1, 1, 1, 1), + (1, 2, 1, 2, 1, 1, 2), + (1, 2, 1, 2, 1, 2, 1), + (1, 2, 1, 2, 2, 1, 1), + (1, 2, 1, 2, 2, 2), + (1, 2, 2, 1, 1, 1, 1, 1), + (1, 2, 2, 1, 1, 1, 2), + (1, 2, 2, 1, 1, 2, 1), + (1, 2, 2, 1, 2, 1, 1), + (1, 2, 2, 1, 2, 2), + (1, 2, 2, 2, 1, 1, 1), + (1, 2, 2, 2, 1, 2), + (1, 2, 2, 2, 2, 1), + (2, 1, 1, 1, 1, 1, 1, 1, 1), + (2, 1, 1, 1, 1, 1, 1, 2), + (2, 1, 1, 1, 1, 1, 2, 1), + (2, 1, 1, 1, 1, 2, 1, 1), + (2, 1, 1, 1, 1, 2, 2), + (2, 1, 1, 1, 2, 1, 1, 1), + (2, 1, 1, 1, 2, 1, 2), + (2, 1, 1, 1, 2, 2, 1), + (2, 1, 1, 2, 1, 1, 1, 1), + (2, 1, 1, 2, 1, 1, 2), + (2, 1, 1, 2, 1, 2, 1), + (2, 1, 1, 2, 2, 1, 1), + (2, 1, 1, 2, 2, 2), + (2, 1, 2, 1, 1, 1, 1, 1), + (2, 1, 2, 1, 1, 1, 2), + (2, 1, 2, 1, 1, 2, 1), + (2, 1, 2, 1, 2, 1, 1), + (2, 1, 2, 1, 2, 2), + (2, 1, 2, 2, 1, 1, 1), + (2, 1, 2, 2, 1, 2), + (2, 1, 2, 2, 2, 1), + (2, 2, 1, 1, 1, 1, 1, 1), + (2, 2, 1, 1, 1, 1, 2), + (2, 2, 1, 1, 1, 2, 1), + (2, 2, 1, 1, 2, 1, 1), + (2, 2, 1, 1, 2, 2), + (2, 2, 1, 2, 1, 1, 1), + (2, 2, 1, 2, 1, 2), + (2, 2, 1, 2, 2, 1), + (2, 2, 2, 1, 1, 1, 1), + (2, 2, 2, 1, 1, 2), + (2, 2, 2, 1, 2, 1), + (2, 2, 2, 2, 1, 1), + (2, 2, 2, 2, 2))>>.Seq; +} + +multi MAIN(UInt $u) +{ + my $seq := stairs($u); + + say $seq.elems; + + .say for $seq; +} + +sub stairs($u) +{ + my $head = ('100' x $u).substr(0, $u).parse-base(2); + my $tail = ('110' x $u).substr(0, $u).parse-base(2); + + ($head..$tail).map({ + my $b = .base(2); + + unless $b ~~ /000||111/ + { + $b.comb(/(.)$0?/).map(*.chars) + } + }).sort +} |
