aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-05-06 23:41:39 +0100
committerGitHub <noreply@github.com>2022-05-06 23:41:39 +0100
commitfad0733e72f20c30dccdb8bef2974a5dcbd251f6 (patch)
tree88cb495d1ddb8fd4de2aaf3fa42eb516dc50f21c
parenta12b83405d2402461c531de4500db1e1863d1a8f (diff)
parent5d61a1227b59768eadbe51d2dcb1e07d9a5fb08f (diff)
downloadperlweeklychallenge-club-fad0733e72f20c30dccdb8bef2974a5dcbd251f6.tar.gz
perlweeklychallenge-club-fad0733e72f20c30dccdb8bef2974a5dcbd251f6.tar.bz2
perlweeklychallenge-club-fad0733e72f20c30dccdb8bef2974a5dcbd251f6.zip
Merge pull request #6057 from polettix/polettix/pwc163
Add polettix's solution to challenge-163
-rw-r--r--challenge-163/polettix/blog.txt1
-rw-r--r--challenge-163/polettix/blog1.txt1
-rw-r--r--challenge-163/polettix/perl/ch-1.pl17
-rw-r--r--challenge-163/polettix/perl/ch-2.pl12
-rw-r--r--challenge-163/polettix/raku/ch-1.raku10
-rw-r--r--challenge-163/polettix/raku/ch-2.raku8
6 files changed, 49 insertions, 0 deletions
diff --git a/challenge-163/polettix/blog.txt b/challenge-163/polettix/blog.txt
new file mode 100644
index 0000000000..2ad47f59a7
--- /dev/null
+++ b/challenge-163/polettix/blog.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2022/05/03/pwc163-sum-bitwise-operator/
diff --git a/challenge-163/polettix/blog1.txt b/challenge-163/polettix/blog1.txt
new file mode 100644
index 0000000000..70e17726f9
--- /dev/null
+++ b/challenge-163/polettix/blog1.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2022/05/04/pwc163-summations/
diff --git a/challenge-163/polettix/perl/ch-1.pl b/challenge-163/polettix/perl/ch-1.pl
new file mode 100644
index 0000000000..8420a8cda2
--- /dev/null
+++ b/challenge-163/polettix/perl/ch-1.pl
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+
+say sum_bitwise(@ARGV);
+
+sub sum_bitwise (@n) {
+ return 0 if @n == 0;
+ return $n[0] if @n == 1;
+ my $retval = 0;
+ for my $i (0 .. $#n - 1) {
+ $retval += $n[$i] & $n[$_] for $i + 1 .. $#n;
+ }
+ return $retval;
+}
diff --git a/challenge-163/polettix/perl/ch-2.pl b/challenge-163/polettix/perl/ch-2.pl
new file mode 100644
index 0000000000..1946b120fa
--- /dev/null
+++ b/challenge-163/polettix/perl/ch-2.pl
@@ -0,0 +1,12 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+
+say summations(@ARGV);
+
+sub summations (@n) {
+ for (2 .. $#n) { $n[$_] += $n[$_ - 1] for $_ .. $#n }
+ return $n[-1];
+}
diff --git a/challenge-163/polettix/raku/ch-1.raku b/challenge-163/polettix/raku/ch-1.raku
new file mode 100644
index 0000000000..8d8a95c88f
--- /dev/null
+++ b/challenge-163/polettix/raku/ch-1.raku
@@ -0,0 +1,10 @@
+#!/usr/bin/env raku
+use v6;
+sub MAIN (*@n) { put sb(|@n) }
+
+multi sub sb () { 0 }
+multi sub sb ($n) { $n }
+multi sub sb ($n, $m) { $n +& $m }
+multi sub sb ($n, *@r) { sbf($n, |@r) + sb(|@r) }
+multi sub sbf ($n, $m) { sb($n, $m) }
+multi sub sbf ($n, $m, *@r) { sb($n, $m) + sbf($n, |@r) }
diff --git a/challenge-163/polettix/raku/ch-2.raku b/challenge-163/polettix/raku/ch-2.raku
new file mode 100644
index 0000000000..be9e6d1b44
--- /dev/null
+++ b/challenge-163/polettix/raku/ch-2.raku
@@ -0,0 +1,8 @@
+#!/usr/bin/env raku
+use v6;
+sub MAIN (*@n) { put summations(@n) }
+
+sub summations (@n is copy) {
+ for 2 .. @n.end { @n[$_] += @n[$_ - 1] for $_ .. @n.end }
+ return @n[*-1];
+}