aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetilS <kjetilskotheim@gmail.com>2025-06-15 21:32:36 +0200
committerKjetilS <kjetilskotheim@gmail.com>2025-06-15 21:32:36 +0200
commitf99ae81c2bc6c012fbe6125dc634a280f0f1b455 (patch)
tree52ff5b1b49a05fb199bca45a8f68cb5de932723e
parentad3c4fbdf5f413b89009af4283bfc662c5677610 (diff)
downloadperlweeklychallenge-club-f99ae81c2bc6c012fbe6125dc634a280f0f1b455.tar.gz
perlweeklychallenge-club-f99ae81c2bc6c012fbe6125dc634a280f0f1b455.tar.bz2
perlweeklychallenge-club-f99ae81c2bc6c012fbe6125dc634a280f0f1b455.zip
https://theweeklychallenge.org/blog/perl-weekly-challenge-324/
-rw-r--r--challenge-324/kjetillll/perl/ch-1.pl10
-rw-r--r--challenge-324/kjetillll/perl/ch-2.pl9
2 files changed, 19 insertions, 0 deletions
diff --git a/challenge-324/kjetillll/perl/ch-1.pl b/challenge-324/kjetillll/perl/ch-1.pl
new file mode 100644
index 0000000000..6b3d4d6897
--- /dev/null
+++ b/challenge-324/kjetillll/perl/ch-1.pl
@@ -0,0 +1,10 @@
+sub f {
+ my $c = pop;
+ @_ ? ( [ splice @_, 0, $c ], f(@_, $c) ) : ();
+}
+
+use Test::More;
+is_deeply [ f( 1, 2, 3, 4, 2 ) ] => [ [1, 2], [3, 4] ];
+is_deeply [ f( 1, 2, 3, 3 ) ] => [ [1, 2, 3] ];
+is_deeply [ f( 1, 2, 3, 4, 1 ) ] => [ [1], [2], [3], [4] ];
+done_testing;
diff --git a/challenge-324/kjetillll/perl/ch-2.pl b/challenge-324/kjetillll/perl/ch-2.pl
new file mode 100644
index 0000000000..2754403d9d
--- /dev/null
+++ b/challenge-324/kjetillll/perl/ch-2.pl
@@ -0,0 +1,9 @@
+use Algorithm::Combinatorics 'subsets';
+
+sub f { eval join '+', map eval join('^', @$_), subsets \@_ }
+
+use Test::More;
+is f(1, 3) => 6;
+is f(5, 1, 6) => 28;
+is f(3, 4, 5, 6, 7, 8) => 480;
+done_testing;