diff options
| author | arnesom <arne@bbop.org> | 2024-05-11 20:59:45 +0200 |
|---|---|---|
| committer | arnesom <arne@bbop.org> | 2024-05-11 20:59:45 +0200 |
| commit | e3ca64c61c8818bd8f370981fe2099ad23145a28 (patch) | |
| tree | 9afca64b472557b10d9ae46e07ea1fc8a9944243 | |
| parent | b2998ca96896e0a89935bb9b87f86ea1621e2f09 (diff) | |
| download | perlweeklychallenge-club-e3ca64c61c8818bd8f370981fe2099ad23145a28.tar.gz perlweeklychallenge-club-e3ca64c61c8818bd8f370981fe2099ad23145a28.tar.bz2 perlweeklychallenge-club-e3ca64c61c8818bd8f370981fe2099ad23145a28.zip | |
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(", ") })"; |
