diff options
| author | arnesom <arne@bbop.org> | 2022-09-03 15:52:26 +0200 |
|---|---|---|
| committer | arnesom <arne@bbop.org> | 2022-09-03 15:52:26 +0200 |
| commit | 2d0e463a22f081e1595993c8352b3122ba27a0a6 (patch) | |
| tree | 9ee310de539147fdb6cca63cb4837e7a28ed76d9 | |
| parent | ca7000cc3ac69a5bb30b00d5c6c8eab3c009a7c3 (diff) | |
| download | perlweeklychallenge-club-2d0e463a22f081e1595993c8352b3122ba27a0a6.tar.gz perlweeklychallenge-club-2d0e463a22f081e1595993c8352b3122ba27a0a6.tar.bz2 perlweeklychallenge-club-2d0e463a22f081e1595993c8352b3122ba27a0a6.zip | |
Arne Sommer
| -rw-r--r-- | challenge-180/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-180/arne-sommer/perl/ch-1.pl | 22 | ||||
| -rwxr-xr-x | challenge-180/arne-sommer/perl/ch-2.pl | 10 | ||||
| -rwxr-xr-x | challenge-180/arne-sommer/perl/first-unique-character-perl | 33 | ||||
| -rwxr-xr-x | challenge-180/arne-sommer/perl/first-unique-character-perl-shorter | 22 | ||||
| -rwxr-xr-x | challenge-180/arne-sommer/perl/trim-list-perl | 10 | ||||
| -rwxr-xr-x | challenge-180/arne-sommer/raku/ch-1.raku | 20 | ||||
| -rwxr-xr-x | challenge-180/arne-sommer/raku/ch-2.raku | 7 | ||||
| -rwxr-xr-x | challenge-180/arne-sommer/raku/first-unique-character | 20 | ||||
| -rwxr-xr-x | challenge-180/arne-sommer/raku/trim-list | 7 |
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; + + |
