diff options
| author | arnesom <arne@bbop.org> | 2024-08-29 21:07:50 +0200 |
|---|---|---|
| committer | arnesom <arne@bbop.org> | 2024-08-29 21:07:50 +0200 |
| commit | ad49926210a27fb2af8f35da8888b2037b986d40 (patch) | |
| tree | 4e71fe665d454fecb13d25abb4f0932429bb407e | |
| parent | 9d8b35adb9460155304b6fbaf2b2480c6c7fe723 (diff) | |
| download | perlweeklychallenge-club-ad49926210a27fb2af8f35da8888b2037b986d40.tar.gz perlweeklychallenge-club-ad49926210a27fb2af8f35da8888b2037b986d40.tar.bz2 perlweeklychallenge-club-ad49926210a27fb2af8f35da8888b2037b986d40.zip | |
Arne Sommer
| -rw-r--r-- | challenge-284/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-284/arne-sommer/raku/ch-1.raku | 5 | ||||
| -rwxr-xr-x | challenge-284/arne-sommer/raku/ch-2.raku | 20 | ||||
| -rwxr-xr-x | challenge-284/arne-sommer/raku/lucky-integer | 5 | ||||
| -rwxr-xr-x | challenge-284/arne-sommer/raku/lucky-integer-kv | 5 | ||||
| -rwxr-xr-x | challenge-284/arne-sommer/raku/relative-sort | 23 | ||||
| -rwxr-xr-x | challenge-284/arne-sommer/raku/relative-sort-kxxv | 20 |
7 files changed, 79 insertions, 0 deletions
diff --git a/challenge-284/arne-sommer/blog.txt b/challenge-284/arne-sommer/blog.txt new file mode 100644 index 0000000000..8537192d7f --- /dev/null +++ b/challenge-284/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/relatively-lucky.html diff --git a/challenge-284/arne-sommer/raku/ch-1.raku b/challenge-284/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..bd04faccf5 --- /dev/null +++ b/challenge-284/arne-sommer/raku/ch-1.raku @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where all(@ints) ~~ Int && @ints.elems > 0); + +say @ints.Bag.grep({ $_.key == $_.value })>>.key.sort.tail // -1; diff --git a/challenge-284/arne-sommer/raku/ch-2.raku b/challenge-284/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..19db6459c0 --- /dev/null +++ b/challenge-284/arne-sommer/raku/ch-2.raku @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN ($list1, $list2); + +my @list1 = $list1.words; +my @list2 = $list2.words; +my $bag1 = @list1.BagHash; + +my @sorted; + +for @list2 -> $element +{ + @sorted.append: $element xx $bag1{$element}; + + $bag1{$element}:delete; +} + +@sorted.append: $bag1.kxxv.sort; + +say "({ @sorted.join(", ") })"; diff --git a/challenge-284/arne-sommer/raku/lucky-integer b/challenge-284/arne-sommer/raku/lucky-integer new file mode 100755 index 0000000000..bd04faccf5 --- /dev/null +++ b/challenge-284/arne-sommer/raku/lucky-integer @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where all(@ints) ~~ Int && @ints.elems > 0); + +say @ints.Bag.grep({ $_.key == $_.value })>>.key.sort.tail // -1; diff --git a/challenge-284/arne-sommer/raku/lucky-integer-kv b/challenge-284/arne-sommer/raku/lucky-integer-kv new file mode 100755 index 0000000000..0c17800437 --- /dev/null +++ b/challenge-284/arne-sommer/raku/lucky-integer-kv @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where all(@ints) ~~ Int && @ints.elems > 0); + +say @ints.Bag.grep({ [==] $_.kv })>>.key.sort.tail // -1; diff --git a/challenge-284/arne-sommer/raku/relative-sort b/challenge-284/arne-sommer/raku/relative-sort new file mode 100755 index 0000000000..a710d096d9 --- /dev/null +++ b/challenge-284/arne-sommer/raku/relative-sort @@ -0,0 +1,23 @@ +#! /usr/bin/env raku + +unit sub MAIN ($list1, $list2); + +my @list1 = $list1.words; +my @list2 = $list2.words; +my $bag1 = @list1.Bag; +my %seen; +my @sorted; + +for @list2 -> $element +{ + @sorted.append: $element xx $bag1{$element}; + %seen{$element} = True; +} + +for @list1.sort -> $element +{ + next if %seen{$element}; + @sorted.push: $element; +} + +say "({ @sorted.join(", ") })"; diff --git a/challenge-284/arne-sommer/raku/relative-sort-kxxv b/challenge-284/arne-sommer/raku/relative-sort-kxxv new file mode 100755 index 0000000000..19db6459c0 --- /dev/null +++ b/challenge-284/arne-sommer/raku/relative-sort-kxxv @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN ($list1, $list2); + +my @list1 = $list1.words; +my @list2 = $list2.words; +my $bag1 = @list1.BagHash; + +my @sorted; + +for @list2 -> $element +{ + @sorted.append: $element xx $bag1{$element}; + + $bag1{$element}:delete; +} + +@sorted.append: $bag1.kxxv.sort; + +say "({ @sorted.join(", ") })"; |
