aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2023-05-28 21:56:31 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2023-05-28 21:56:31 +0200
commit2cba0a45e89af2b3c9c361cb5da5cde81b3ddc2f (patch)
tree8eb66675c964bb80a96b8f7f8becfdced56c5902
parentbcc11a8dc2fa51933b649f20cf0a3325b9193b6d (diff)
downloadperlweeklychallenge-club-2cba0a45e89af2b3c9c361cb5da5cde81b3ddc2f.tar.gz
perlweeklychallenge-club-2cba0a45e89af2b3c9c361cb5da5cde81b3ddc2f.tar.bz2
perlweeklychallenge-club-2cba0a45e89af2b3c9c361cb5da5cde81b3ddc2f.zip
solution week 218-1
-rw-r--r--challenge-218/wambash/raku/ch-1.raku20
1 files changed, 20 insertions, 0 deletions
diff --git a/challenge-218/wambash/raku/ch-1.raku b/challenge-218/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..92631d7b89
--- /dev/null
+++ b/challenge-218/wambash/raku/ch-1.raku
@@ -0,0 +1,20 @@
+#!/usr/bin/env raku
+
+sub maximum-product (+@list) {
+ @list
+ andthen .sort.cache
+ andthen ([*] .tail(3)) max ([*] |.head(2), .tail)
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is maximum-product(3, 1, 2),6;
+ is maximum-product(4, 1, 3, 2),24;
+ is maximum-product(-1, 0, 1, 3, 1),3;
+ is maximum-product(-8, 2, -9, 0, -4, 3), 216;
+ done-testing;
+}
+
+multi MAIN (*@list) {
+ say maximum-product @list
+}