diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-05-16 18:29:59 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-16 18:29:59 +0100 |
| commit | 3f9ba847e996adfd0640a41d9ad081659131c2b3 (patch) | |
| tree | 6a2ebeb8ea59a5e25411c6fb1b170261c7a2b05b | |
| parent | 45c8bffb1a53e712241e7720130b74787d62f1f6 (diff) | |
| parent | 3e950d79280a1c25de12a7d51e157d678903d991 (diff) | |
| download | perlweeklychallenge-club-3f9ba847e996adfd0640a41d9ad081659131c2b3.tar.gz perlweeklychallenge-club-3f9ba847e996adfd0640a41d9ad081659131c2b3.tar.bz2 perlweeklychallenge-club-3f9ba847e996adfd0640a41d9ad081659131c2b3.zip | |
Merge pull request #4081 from wambash/challenge-week-112
solutions week 112
| -rw-r--r-- | challenge-112/wambash/raku/ch-1.raku | 26 | ||||
| -rw-r--r-- | challenge-112/wambash/raku/ch-2.raku | 17 |
2 files changed, 43 insertions, 0 deletions
diff --git a/challenge-112/wambash/raku/ch-1.raku b/challenge-112/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..dc15a1b0b6 --- /dev/null +++ b/challenge-112/wambash/raku/ch-1.raku @@ -0,0 +1,26 @@ +#!/usr/bin/env raku + +sub canonical-path ( $path ) { + my IO::Path $clean-path = $path.IO.cleanup; + with $clean-path.resolve(:completely) { + .path + } orwith $clean-path.path { + $_, *.subst(/'/'<-[/]>*'/..'/, '') ... * eq * + andthen .tail || '/' + } +} + + +multi MAIN ($path) { + say canonical-path $path +} + +multi MAIN (:test($)! ) { + use Test; + is canonical-path("/a/"), "/a"; + is canonical-path("/a/b//c/"), "/a/b/c"; + is canonical-path("/a/b/c/../.."), "/a"; + is canonical-path('/var//./../var/../log/apache-flink/../..'), '/'; + is canonical-path('/var//./../var/log/apache-flink/..'), '/var/log'; + done-testing; +} diff --git a/challenge-112/wambash/raku/ch-2.raku b/challenge-112/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..81e8cd6460 --- /dev/null +++ b/challenge-112/wambash/raku/ch-2.raku @@ -0,0 +1,17 @@ +#!/usr/bin/env raku +constant @fib = 0, 1, * + * ... *; + +sub climb-stairs ($n) { + @fib[$n+1] +} + +multi MAIN ( $n ) { + say climb-stairs $n; +} + +multi MAIN ( :test($) ) { + use Test; + is climb-stairs(3),3; + is climb-stairs(4),5; + done-testing; +} |
