diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-04-05 10:49:06 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-05 10:49:06 +0100 |
| commit | 1f982bc41bbd6084b1bd830af74179f424bd17fc (patch) | |
| tree | bf732a578682b8710c2b710fd2130d5ad8746afd | |
| parent | 6d51ca4398c27223eb9edd6ee9ddbc26b3852552 (diff) | |
| parent | ff1b46d1c3f3f022127a45485b88487c1a13758d (diff) | |
| download | perlweeklychallenge-club-1f982bc41bbd6084b1bd830af74179f424bd17fc.tar.gz perlweeklychallenge-club-1f982bc41bbd6084b1bd830af74179f424bd17fc.tar.bz2 perlweeklychallenge-club-1f982bc41bbd6084b1bd830af74179f424bd17fc.zip | |
Merge pull request #9872 from arnesom/branch-for-challenge-263
Arne Sommer
| -rw-r--r-- | challenge-263/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-263/arne-sommer/raku/ch-1.raku | 9 | ||||
| -rwxr-xr-x | challenge-263/arne-sommer/raku/ch-2.raku | 35 | ||||
| -rwxr-xr-x | challenge-263/arne-sommer/raku/merge-items | 35 | ||||
| -rwxr-xr-x | challenge-263/arne-sommer/raku/target-index | 9 |
5 files changed, 89 insertions, 0 deletions
diff --git a/challenge-263/arne-sommer/blog.txt b/challenge-263/arne-sommer/blog.txt new file mode 100644 index 0000000000..b5ed3391c1 --- /dev/null +++ b/challenge-263/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/target-merge.html diff --git a/challenge-263/arne-sommer/raku/ch-1.raku b/challenge-263/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..8003ee7c84 --- /dev/null +++ b/challenge-263/arne-sommer/raku/ch-1.raku @@ -0,0 +1,9 @@ +#! /usr/bin/env raku + +unit sub MAIN (Int $k, + *@ints where @ints.elems > 0 && all(@ints) ~~ Int, + :v(:$verbose)); + +say ": Sorted: { @ints.sort.join(",") }" if $verbose; + +say '(', (@ints.sort.grep: $k, :k).join(", "), ')'; diff --git a/challenge-263/arne-sommer/raku/ch-2.raku b/challenge-263/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..f2a5d16297 --- /dev/null +++ b/challenge-263/arne-sommer/raku/ch-2.raku @@ -0,0 +1,35 @@ +#! /usr/bin/env raku + +unit sub MAIN ($items1, $items2, :v(:$verbose)); + +my @items1 = $items1.split("|")>>.words>>.Int; +my @items2 = $items2.split("|")>>.words>>.Int; + +if $verbose +{ + say ": items1: { @items1.raku }"; + say ": items2: { @items2.raku }"; +} + +my %count; + +for @items1 -> $item +{ + say ": item1 ID $item[0] with frequency $item[1]"; + %count{$item[0]} += $item[1]; +} + +for @items2 -> $item +{ + say ": item2 ID $item[0] with frequency $item[1]"; + %count{$item[0]} += $item[1]; +} + +my @output; + +for sort keys %count -> $key +{ + @output.push: ($key.Int, %count{$key}); +} + +say @output.raku; diff --git a/challenge-263/arne-sommer/raku/merge-items b/challenge-263/arne-sommer/raku/merge-items new file mode 100755 index 0000000000..f2a5d16297 --- /dev/null +++ b/challenge-263/arne-sommer/raku/merge-items @@ -0,0 +1,35 @@ +#! /usr/bin/env raku + +unit sub MAIN ($items1, $items2, :v(:$verbose)); + +my @items1 = $items1.split("|")>>.words>>.Int; +my @items2 = $items2.split("|")>>.words>>.Int; + +if $verbose +{ + say ": items1: { @items1.raku }"; + say ": items2: { @items2.raku }"; +} + +my %count; + +for @items1 -> $item +{ + say ": item1 ID $item[0] with frequency $item[1]"; + %count{$item[0]} += $item[1]; +} + +for @items2 -> $item +{ + say ": item2 ID $item[0] with frequency $item[1]"; + %count{$item[0]} += $item[1]; +} + +my @output; + +for sort keys %count -> $key +{ + @output.push: ($key.Int, %count{$key}); +} + +say @output.raku; diff --git a/challenge-263/arne-sommer/raku/target-index b/challenge-263/arne-sommer/raku/target-index new file mode 100755 index 0000000000..8003ee7c84 --- /dev/null +++ b/challenge-263/arne-sommer/raku/target-index @@ -0,0 +1,9 @@ +#! /usr/bin/env raku + +unit sub MAIN (Int $k, + *@ints where @ints.elems > 0 && all(@ints) ~~ Int, + :v(:$verbose)); + +say ": Sorted: { @ints.sort.join(",") }" if $verbose; + +say '(', (@ints.sort.grep: $k, :k).join(", "), ')'; |
