From 2d0e463a22f081e1595993c8352b3122ba27a0a6 Mon Sep 17 00:00:00 2001 From: arnesom Date: Sat, 3 Sep 2022 15:52:26 +0200 Subject: Arne Sommer --- challenge-180/arne-sommer/blog.txt | 1 + challenge-180/arne-sommer/perl/ch-1.pl | 22 +++++++++++++++ challenge-180/arne-sommer/perl/ch-2.pl | 10 +++++++ .../arne-sommer/perl/first-unique-character-perl | 33 ++++++++++++++++++++++ .../perl/first-unique-character-perl-shorter | 22 +++++++++++++++ challenge-180/arne-sommer/perl/trim-list-perl | 10 +++++++ challenge-180/arne-sommer/raku/ch-1.raku | 20 +++++++++++++ challenge-180/arne-sommer/raku/ch-2.raku | 7 +++++ .../arne-sommer/raku/first-unique-character | 20 +++++++++++++ challenge-180/arne-sommer/raku/trim-list | 7 +++++ 10 files changed, 152 insertions(+) create mode 100644 challenge-180/arne-sommer/blog.txt create mode 100755 challenge-180/arne-sommer/perl/ch-1.pl create mode 100755 challenge-180/arne-sommer/perl/ch-2.pl create mode 100755 challenge-180/arne-sommer/perl/first-unique-character-perl create mode 100755 challenge-180/arne-sommer/perl/first-unique-character-perl-shorter create mode 100755 challenge-180/arne-sommer/perl/trim-list-perl create mode 100755 challenge-180/arne-sommer/raku/ch-1.raku create mode 100755 challenge-180/arne-sommer/raku/ch-2.raku create mode 100755 challenge-180/arne-sommer/raku/first-unique-character create mode 100755 challenge-180/arne-sommer/raku/trim-list 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; + + -- cgit