diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-08-10 20:54:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-10 20:54:20 +0100 |
| commit | a93ed0c3c8d3aa98a0b354bc56f36c37ffab2a79 (patch) | |
| tree | 9b191fe87cdc90fe2729d863c37488c4ee056a5b | |
| parent | 723864b610e59d3e38292a29c7d3a6ee2666de79 (diff) | |
| parent | e9e71d1721c05c1722672a7326ec51d4b84fc92f (diff) | |
| download | perlweeklychallenge-club-a93ed0c3c8d3aa98a0b354bc56f36c37ffab2a79.tar.gz perlweeklychallenge-club-a93ed0c3c8d3aa98a0b354bc56f36c37ffab2a79.tar.bz2 perlweeklychallenge-club-a93ed0c3c8d3aa98a0b354bc56f36c37ffab2a79.zip | |
Merge pull request #2067 from therealjcm/branch-for-challenge-073
Weekly challenge #73 raku solution by Jason Messer
| -rw-r--r-- | challenge-073/jason-messer/raku/ch-1.p6 | 13 | ||||
| -rw-r--r-- | challenge-073/jason-messer/raku/ch-2.p6 | 20 |
2 files changed, 33 insertions, 0 deletions
diff --git a/challenge-073/jason-messer/raku/ch-1.p6 b/challenge-073/jason-messer/raku/ch-1.p6 new file mode 100644 index 0000000000..8acc4c931b --- /dev/null +++ b/challenge-073/jason-messer/raku/ch-1.p6 @@ -0,0 +1,13 @@ +#! /usr/bin/env rakudo + +my @A = (1, 5, 0, 2, 9, 3, 7, 6, 4, 8); +my $S = 3; + +sub min-in-window(:$array, :$window where $window > 0 ) { + gather for (0 .. $array.elems - $window) -> $i { + take min($array[$i .. $i + $window - 1]); + } +} + +say min-in-window :array(@A), :window($S); +#say min-window :array(['red', 'white', 'blue', 999, 0, 'yellow']), :window(2); diff --git a/challenge-073/jason-messer/raku/ch-2.p6 b/challenge-073/jason-messer/raku/ch-2.p6 new file mode 100644 index 0000000000..ccf585387a --- /dev/null +++ b/challenge-073/jason-messer/raku/ch-2.p6 @@ -0,0 +1,20 @@ +#! /usr/bin/env rakudo + +my @A = (7, 8, 3, 12, 10); +my @B = (4, 5, 6); + +# find min number in @A[0..n-1] that is less than n +sub min-left-lt(@array) { + gather for (@array) { + state @left; + my $min = min(@left); + + if $min < $_ { take $min } + else { take 0 } + + @left.append($_); + } +} + +say min-left-lt(@A); +say min-left-lt(@B); |
