aboutsummaryrefslogtreecommitdiff
path: root/challenge-180
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-09-03 18:05:36 +0100
committerGitHub <noreply@github.com>2022-09-03 18:05:36 +0100
commitf43e52d47c7abf4613ef2eca0e641bf752c60910 (patch)
tree91f051e0830985477598a276354561c3fce52809 /challenge-180
parent200f29fed15660abca17935980dae1d127f72d6f (diff)
parent2d0e463a22f081e1595993c8352b3122ba27a0a6 (diff)
downloadperlweeklychallenge-club-f43e52d47c7abf4613ef2eca0e641bf752c60910.tar.gz
perlweeklychallenge-club-f43e52d47c7abf4613ef2eca0e641bf752c60910.tar.bz2
perlweeklychallenge-club-f43e52d47c7abf4613ef2eca0e641bf752c60910.zip
Merge pull request #6688 from arnesom/branch-for-challenge-180
Arne Sommer
Diffstat (limited to 'challenge-180')
-rw-r--r--challenge-180/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-180/arne-sommer/perl/ch-1.pl22
-rwxr-xr-xchallenge-180/arne-sommer/perl/ch-2.pl10
-rwxr-xr-xchallenge-180/arne-sommer/perl/first-unique-character-perl33
-rwxr-xr-xchallenge-180/arne-sommer/perl/first-unique-character-perl-shorter22
-rwxr-xr-xchallenge-180/arne-sommer/perl/trim-list-perl10
-rwxr-xr-xchallenge-180/arne-sommer/raku/ch-1.raku20
-rwxr-xr-xchallenge-180/arne-sommer/raku/ch-2.raku7
-rwxr-xr-xchallenge-180/arne-sommer/raku/first-unique-character20
-rwxr-xr-xchallenge-180/arne-sommer/raku/trim-list7
10 files changed, 152 insertions, 0 deletions
diff --git a/challenge-180/arne-sommer/blog.txt b/challenge-180/arne-sommer/blog.txt
new file mode 100644
index 0000000000..e25883b44d
--- /dev/null
+++ b/challenge-180/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/unique-trim.html
diff --git a/challenge-180/arne-sommer/perl/ch-1.pl b/challenge-180/arne-sommer/perl/ch-1.pl
new file mode 100755
index 0000000000..5f05502c7e
--- /dev/null
+++ b/challenge-180/arne-sommer/perl/ch-1.pl
@@ -0,0 +1,22 @@
+#! /usr/bin/env perl
+
+use strict;
+use warnings;
+use feature 'say';
+
+my $s = $ARGV[0];
+my %freq;
+
+map { $freq{$_}++ } split(//, $s);
+
+for my $index (0 .. length($s) -1)
+{
+ my $char =
+ my $count = $freq{substr($s, $index,1)};
+
+ if ($count == 1)
+ {
+ say $index;
+ last;
+ }
+}
diff --git a/challenge-180/arne-sommer/perl/ch-2.pl b/challenge-180/arne-sommer/perl/ch-2.pl
new file mode 100755
index 0000000000..7e0e712e77
--- /dev/null
+++ b/challenge-180/arne-sommer/perl/ch-2.pl
@@ -0,0 +1,10 @@
+#! /usr/bin/env perl
+
+use strict;
+use warnings;
+use feature 'say';
+
+my $i = shift(@ARGV);
+my @n = @ARGV;
+
+say "(", join(",", grep { $_ > $i } @n), ")";
diff --git a/challenge-180/arne-sommer/perl/first-unique-character-perl b/challenge-180/arne-sommer/perl/first-unique-character-perl
new file mode 100755
index 0000000000..4709855d9c
--- /dev/null
+++ b/challenge-180/arne-sommer/perl/first-unique-character-perl
@@ -0,0 +1,33 @@
+#! /usr/bin/env perl
+
+use strict;
+use warnings;
+use feature 'say';
+use Getopt::Long;
+
+my $verbose = 0;
+
+GetOptions("verbose" => \$verbose);
+
+my $s = $ARGV[0];
+my @s = split(//, $s);
+my %freq;
+
+for my $char (@s)
+{
+ $freq{$char}++;
+}
+
+for my $index (0 .. @s -1)
+{
+ my $char = $s[$index];
+ my $count = $freq{$char};
+
+ say ": Char $char with frequency $count" if $verbose;
+
+ if ($count == 1)
+ {
+ say $index;
+ last;
+ }
+}
diff --git a/challenge-180/arne-sommer/perl/first-unique-character-perl-shorter b/challenge-180/arne-sommer/perl/first-unique-character-perl-shorter
new file mode 100755
index 0000000000..5f05502c7e
--- /dev/null
+++ b/challenge-180/arne-sommer/perl/first-unique-character-perl-shorter
@@ -0,0 +1,22 @@
+#! /usr/bin/env perl
+
+use strict;
+use warnings;
+use feature 'say';
+
+my $s = $ARGV[0];
+my %freq;
+
+map { $freq{$_}++ } split(//, $s);
+
+for my $index (0 .. length($s) -1)
+{
+ my $char =
+ my $count = $freq{substr($s, $index,1)};
+
+ if ($count == 1)
+ {
+ say $index;
+ last;
+ }
+}
diff --git a/challenge-180/arne-sommer/perl/trim-list-perl b/challenge-180/arne-sommer/perl/trim-list-perl
new file mode 100755
index 0000000000..7e0e712e77
--- /dev/null
+++ b/challenge-180/arne-sommer/perl/trim-list-perl
@@ -0,0 +1,10 @@
+#! /usr/bin/env perl
+
+use strict;
+use warnings;
+use feature 'say';
+
+my $i = shift(@ARGV);
+my @n = @ARGV;
+
+say "(", join(",", grep { $_ > $i } @n), ")";
diff --git a/challenge-180/arne-sommer/raku/ch-1.raku b/challenge-180/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..22737cb202
--- /dev/null
+++ b/challenge-180/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,20 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Str $s, :v(:$verbose));
+
+my @s = $s.comb;
+my $freq = @s.Bag;
+
+for ^@s.elems -> $index
+{
+ my $char = @s[$index];
+ my $count = $freq{$char};
+
+ say ": Char $char with frequency $count" if $verbose;
+
+ if $count == 1
+ {
+ say $index;
+ last;
+ }
+}
diff --git a/challenge-180/arne-sommer/raku/ch-2.raku b/challenge-180/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..f315fdfdbc
--- /dev/null
+++ b/challenge-180/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,7 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $i, *@n where @n.elems > 0 && all(@n) ~~ Numeric);
+
+say @n.grep: * > $i;
+
+
diff --git a/challenge-180/arne-sommer/raku/first-unique-character b/challenge-180/arne-sommer/raku/first-unique-character
new file mode 100755
index 0000000000..22737cb202
--- /dev/null
+++ b/challenge-180/arne-sommer/raku/first-unique-character
@@ -0,0 +1,20 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Str $s, :v(:$verbose));
+
+my @s = $s.comb;
+my $freq = @s.Bag;
+
+for ^@s.elems -> $index
+{
+ my $char = @s[$index];
+ my $count = $freq{$char};
+
+ say ": Char $char with frequency $count" if $verbose;
+
+ if $count == 1
+ {
+ say $index;
+ last;
+ }
+}
diff --git a/challenge-180/arne-sommer/raku/trim-list b/challenge-180/arne-sommer/raku/trim-list
new file mode 100755
index 0000000000..f315fdfdbc
--- /dev/null
+++ b/challenge-180/arne-sommer/raku/trim-list
@@ -0,0 +1,7 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $i, *@n where @n.elems > 0 && all(@n) ~~ Numeric);
+
+say @n.grep: * > $i;
+
+