diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-10-02 19:39:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-02 19:39:17 +0100 |
| commit | ba74bc7c852c73039cacd7dd64e5f356ed10ce81 (patch) | |
| tree | 35847ef156d9b9626b394ae68f3d98e2ce0f2cff | |
| parent | 79f4ef8481ca9168064ebac43b61d3bfdbcc9a28 (diff) | |
| parent | 5756e45241c8b0027381acf86801105060078762 (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rw-r--r-- | challenge-184/polettix/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-184/polettix/perl/ch-1.pl | 15 | ||||
| -rw-r--r-- | challenge-184/polettix/perl/ch-2.pl | 23 | ||||
| -rw-r--r-- | challenge-184/polettix/raku/ch-1.raku | 13 | ||||
| -rw-r--r-- | challenge-184/polettix/raku/ch-2.raku | 22 |
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); +} |
