diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2024-09-30 05:55:00 +0200 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2024-09-30 05:55:00 +0200 |
| commit | 7ffcf75e4ea004584c7e0a91ca637f5bad0bbcbc (patch) | |
| tree | d29dea517b89348a80a8bf16c19ce5d2826955f5 | |
| parent | 9437b5a4b5fa7e256f5afd0e347ccc81149bc136 (diff) | |
| download | perlweeklychallenge-club-7ffcf75e4ea004584c7e0a91ca637f5bad0bbcbc.tar.gz perlweeklychallenge-club-7ffcf75e4ea004584c7e0a91ca637f5bad0bbcbc.tar.bz2 perlweeklychallenge-club-7ffcf75e4ea004584c7e0a91ca637f5bad0bbcbc.zip | |
solution week 288-1
| -rw-r--r-- | challenge-288/wambash/raku/ch-1.raku | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/challenge-288/wambash/raku/ch-1.raku b/challenge-288/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..1ae1b96da3 --- /dev/null +++ b/challenge-288/wambash/raku/ch-1.raku @@ -0,0 +1,20 @@ +#!/usr/bin/env raku + +sub closest-palindrome (Int() $str) { + $str, $str, -> $p, $n {slip $p.pred, $n.succ} ... * + andthen .skip: 2 + andthen .first: { $_ == .flip} +} + +multi MAIN (Bool :test($)!) { + use Test; + is closest-palindrome('123'), '121'; + is closest-palindrome('2'), '1'; + is closest-palindrome('1400'), '1441'; + is closest-palindrome('1001'), '999'; + done-testing; +} + +multi MAIN ($str) { + say closest-palindrome $str +} |
