diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-02-02 20:51:46 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-02 20:51:46 +0000 |
| commit | 70dc1ed761457730f9a0d8352efec3c9a6c6cb8a (patch) | |
| tree | 08d5f2e2c866504a00930b7469b1c2eb27d5b20d | |
| parent | 3613da2636f8c3790c7db9cd8c39b79b78e13620 (diff) | |
| parent | 8e2e44469869c7591fc2515e2249eb4c1b2b2214 (diff) | |
| download | perlweeklychallenge-club-70dc1ed761457730f9a0d8352efec3c9a6c6cb8a.tar.gz perlweeklychallenge-club-70dc1ed761457730f9a0d8352efec3c9a6c6cb8a.tar.bz2 perlweeklychallenge-club-70dc1ed761457730f9a0d8352efec3c9a6c6cb8a.zip | |
Merge pull request #11517 from wambash/challenge-week-306
solutions week 306-2
| -rw-r--r-- | challenge-306/wambash/raku/ch-2.raku | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/challenge-306/wambash/raku/ch-2.raku b/challenge-306/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..5c18ab6481 --- /dev/null +++ b/challenge-306/wambash/raku/ch-2.raku @@ -0,0 +1,33 @@ +#!/usr/bin/env raku +use v6e.PREVIEW; + +sub max-rest (+@a) { + my ($ind,$max) = @a.max: :kv; + $max, @a.skip: $ind, 1 +} + +sub next-element (@ints) { + my ($max, $rest) = max-rest @ints; + my ($max2, $rest2) = max-rest $rest; + + $max-$max2 || Empty, |$rest2 +} + +sub last-element (+ints) { + ints, &next-element ... *.elems ≤ 1 + andthen .tail.head // 0 +} + +multi MAIN (Bool :test($)!) { + use Test; + is-deeply max-rest(1,2,3,2,1), (3,(1,2,2,1).Seq); + is-deeply max-rest(1,2,2,1), (2,(1,2,1).Seq); + is-deeply next-element((3, 8, 5, 2, 9, 2)), (1,3,5,2,2); + is-deeply last-element(3, 8, 5, 2, 9, 2),1; + is-deeply last-element(3, 2, 5),0; + done-testing; +} + +multi MAIN (+ints) { + say last-element ints +} |
