diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-05-13 00:26:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-13 00:26:35 +0100 |
| commit | d93ae1050ee585b55bf817f7ea15641de5879ae8 (patch) | |
| tree | 7a40c47c99e8e24adc6ff258bd82eb5c771adb1a | |
| parent | 934b3b52cde29c7a38d216e1874be5c98ed0c69b (diff) | |
| parent | e3ca64c61c8818bd8f370981fe2099ad23145a28 (diff) | |
| download | perlweeklychallenge-club-d93ae1050ee585b55bf817f7ea15641de5879ae8.tar.gz perlweeklychallenge-club-d93ae1050ee585b55bf817f7ea15641de5879ae8.tar.bz2 perlweeklychallenge-club-d93ae1050ee585b55bf817f7ea15641de5879ae8.zip | |
Merge pull request #10075 from arnesom/branch-for-challenge-268
Arne Sommer
| -rw-r--r-- | challenge-268/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-268/arne-sommer/raku/ch-1.raku | 18 | ||||
| -rwxr-xr-x | challenge-268/arne-sommer/raku/ch-2.raku | 20 | ||||
| -rwxr-xr-x | challenge-268/arne-sommer/raku/magic-number | 18 | ||||
| -rwxr-xr-x | challenge-268/arne-sommer/raku/number-game | 20 |
5 files changed, 77 insertions, 0 deletions
diff --git a/challenge-268/arne-sommer/blog.txt b/challenge-268/arne-sommer/blog.txt new file mode 100644 index 0000000000..6f72301b3e --- /dev/null +++ b/challenge-268/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/numerous-numbers.html diff --git a/challenge-268/arne-sommer/raku/ch-1.raku b/challenge-268/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..c057392b31 --- /dev/null +++ b/challenge-268/arne-sommer/raku/ch-1.raku @@ -0,0 +1,18 @@ +#! /usr/bin/env raku + +unit sub MAIN ($x, $y, :v(:$verbose)); + +my @x = $x.words>>.Int.sort; ## Numeric +my @y = $y.words>>.Int.sort; + +die "Not the same length" unless @x.elems == @y.elems; + +my @pairs = @x Z @y; + +say ":Pairs: { @pairs.raku }" if $verbose; + +my @diff = @pairs.map({ $_[0] - $_[1] }); + +say ":Diff: { @diff.join(", ") }" if $verbose; + +say ( [==] @diff ) ?? @diff[0].abs !! 'error'; diff --git a/challenge-268/arne-sommer/raku/ch-2.raku b/challenge-268/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..851142ccff --- /dev/null +++ b/challenge-268/arne-sommer/raku/ch-2.raku @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where @ints.elems > 1 && @ints.elems %% 2 && all(@ints) ~~ Int, :v(:$verbose)); + +my @sorted = @ints.sort; +my @new; + +while @sorted +{ + print ":Sorted: { @sorted.join(",")}" if $verbose; + + my $a = @sorted.shift; + my $b = @sorted.shift; + + say " -> pick $a,$b -> add $b,$a" if $verbose; + + @new.append: $b, $a; +} + +say "({ @new.join(", ") })"; diff --git a/challenge-268/arne-sommer/raku/magic-number b/challenge-268/arne-sommer/raku/magic-number new file mode 100755 index 0000000000..c057392b31 --- /dev/null +++ b/challenge-268/arne-sommer/raku/magic-number @@ -0,0 +1,18 @@ +#! /usr/bin/env raku + +unit sub MAIN ($x, $y, :v(:$verbose)); + +my @x = $x.words>>.Int.sort; ## Numeric +my @y = $y.words>>.Int.sort; + +die "Not the same length" unless @x.elems == @y.elems; + +my @pairs = @x Z @y; + +say ":Pairs: { @pairs.raku }" if $verbose; + +my @diff = @pairs.map({ $_[0] - $_[1] }); + +say ":Diff: { @diff.join(", ") }" if $verbose; + +say ( [==] @diff ) ?? @diff[0].abs !! 'error'; diff --git a/challenge-268/arne-sommer/raku/number-game b/challenge-268/arne-sommer/raku/number-game new file mode 100755 index 0000000000..851142ccff --- /dev/null +++ b/challenge-268/arne-sommer/raku/number-game @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where @ints.elems > 1 && @ints.elems %% 2 && all(@ints) ~~ Int, :v(:$verbose)); + +my @sorted = @ints.sort; +my @new; + +while @sorted +{ + print ":Sorted: { @sorted.join(",")}" if $verbose; + + my $a = @sorted.shift; + my $b = @sorted.shift; + + say " -> pick $a,$b -> add $b,$a" if $verbose; + + @new.append: $b, $a; +} + +say "({ @new.join(", ") })"; |
