aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-10-02 19:39:17 +0100
committerGitHub <noreply@github.com>2022-10-02 19:39:17 +0100
commitba74bc7c852c73039cacd7dd64e5f356ed10ce81 (patch)
tree35847ef156d9b9626b394ae68f3d98e2ce0f2cff
parent79f4ef8481ca9168064ebac43b61d3bfdbcc9a28 (diff)
parent5756e45241c8b0027381acf86801105060078762 (diff)
downloadperlweeklychallenge-club-ba74bc7c852c73039cacd7dd64e5f356ed10ce81.tar.gz
perlweeklychallenge-club-ba74bc7c852c73039cacd7dd64e5f356ed10ce81.tar.bz2
perlweeklychallenge-club-ba74bc7c852c73039cacd7dd64e5f356ed10ce81.zip
Merge pull request #6826 from polettix/polettix/pwc184
Add polettix's solution to challenge-184
-rw-r--r--challenge-184/polettix/blog.txt1
-rw-r--r--challenge-184/polettix/blog1.txt1
-rw-r--r--challenge-184/polettix/perl/ch-1.pl15
-rw-r--r--challenge-184/polettix/perl/ch-2.pl23
-rw-r--r--challenge-184/polettix/raku/ch-1.raku13
-rw-r--r--challenge-184/polettix/raku/ch-2.raku22
6 files changed, 75 insertions, 0 deletions
diff --git a/challenge-184/polettix/blog.txt b/challenge-184/polettix/blog.txt
new file mode 100644
index 0000000000..40571ff122
--- /dev/null
+++ b/challenge-184/polettix/blog.txt
@@ -0,0 +1 @@
+https://etoobusy.polettix.it/2022/09/29/pwc184-sequence-number/
diff --git a/challenge-184/polettix/blog1.txt b/challenge-184/polettix/blog1.txt
new file mode 100644
index 0000000000..2ee4e6950f
--- /dev/null
+++ b/challenge-184/polettix/blog1.txt
@@ -0,0 +1 @@
+https://etoobusy.polettix.it/2022/09/30/pwc184-split-array/
diff --git a/challenge-184/polettix/perl/ch-1.pl b/challenge-184/polettix/perl/ch-1.pl
new file mode 100644
index 0000000000..3197ec196c
--- /dev/null
+++ b/challenge-184/polettix/perl/ch-1.pl
@@ -0,0 +1,15 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+
+my @list = qw< ab1234 cd5678 ef1342 >;
+sequence_number(\@list);
+say for @list;
+
+sub sequence_number ($list) {
+ my $n = 0;
+ substr $_, 0, 2, sprintf '%02d', $n++ for $list->@*;
+ return $list;
+}
diff --git a/challenge-184/polettix/perl/ch-2.pl b/challenge-184/polettix/perl/ch-2.pl
new file mode 100644
index 0000000000..cacfd091a3
--- /dev/null
+++ b/challenge-184/polettix/perl/ch-2.pl
@@ -0,0 +1,23 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+use Data::Dumper;
+
+my @l = ('1 2', 'p q r', 's 3', '4 5 t');
+say Dumper([split_array(@l)]);
+
+sub split_array (@list) {
+ my (@digits, @letters);
+ for my $item (@list) {
+ my (@ds, @ls);
+ for my $char (split m{\s+}mxs, $item) {
+ if ($char =~ m{\d}mxs) { push @ds, $char }
+ else { push @ls, $char }
+ }
+ push @digits, \@ds if @ds;
+ push @letters, \@ls if @ls;
+ }
+ return (\@digits, \@letters);
+}
diff --git a/challenge-184/polettix/raku/ch-1.raku b/challenge-184/polettix/raku/ch-1.raku
new file mode 100644
index 0000000000..729a7fd569
--- /dev/null
+++ b/challenge-184/polettix/raku/ch-1.raku
@@ -0,0 +1,13 @@
+#!/usr/bin/env raku
+use v6;
+sub MAIN {
+ my @l = < ab1234 cd5678 ef1342 >;
+ sequence-number(@l);
+ .put for @l;
+}
+
+sub sequence-number (@list) {
+ my $n = 0;
+ @list.map({.substr-rw(0, 2) = '%02d'.sprintf($n++)});
+ @list;
+}
diff --git a/challenge-184/polettix/raku/ch-2.raku b/challenge-184/polettix/raku/ch-2.raku
new file mode 100644
index 0000000000..fb49ac833d
--- /dev/null
+++ b/challenge-184/polettix/raku/ch-2.raku
@@ -0,0 +1,22 @@
+#!/usr/bin/env raku
+use v6;
+sub MAIN {
+ my @l = '1 2', 'p q r', 's 3', '4 5 t';
+ my ($digits, $letters) = split-array(@l);
+ say $digits;
+ say $letters;
+}
+
+sub split-array (@list) {
+ my (@digits, @letters);
+ for @list -> $item {
+ my (@ds, @ls);
+ for $item.comb(/\S/) -> $char {
+ if ($char ~~ /\d/) { @ds.push: $char }
+ else { @ls.push: $char }
+ }
+ @digits.push: @ds if @ds;
+ @letters.push: @ls if @ls;
+ }
+ return (@digits, @letters);
+}