diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-08-04 23:37:28 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-04 23:37:28 +0100 |
| commit | 4c181aeb59eeb8ad2c00827c83d29e706ec53bda (patch) | |
| tree | 711757a3aa2610182ad9ef7cde04b0b8a0f81bc9 | |
| parent | 04f639f89b73313e2208a8c88b8e197c9ab61eff (diff) | |
| parent | 47179386d2c8614596eb2f8e2ee00488c4cf3531 (diff) | |
| download | perlweeklychallenge-club-4c181aeb59eeb8ad2c00827c83d29e706ec53bda.tar.gz perlweeklychallenge-club-4c181aeb59eeb8ad2c00827c83d29e706ec53bda.tar.bz2 perlweeklychallenge-club-4c181aeb59eeb8ad2c00827c83d29e706ec53bda.zip | |
Merge pull request #12459 from ash/ash-333
Solutions Week 333 in Raku by @ash
| -rw-r--r-- | challenge-333/ash/raku/ch-1.raku | 25 | ||||
| -rw-r--r-- | challenge-333/ash/raku/ch-2.raku | 17 |
2 files changed, 42 insertions, 0 deletions
diff --git a/challenge-333/ash/raku/ch-1.raku b/challenge-333/ash/raku/ch-1.raku new file mode 100644 index 0000000000..e176d3dddd --- /dev/null +++ b/challenge-333/ash/raku/ch-1.raku @@ -0,0 +1,25 @@ +# Task 1 of the Weekly Challenge 333 +# https://theweeklychallenge.org/blog/perl-weekly-challenge-333/#TASK1 + +say is-straight-line([2, 1], [2, 3], [2, 5]); # True +say is-straight-line([1, 4], [3, 4], [10, 4]); # True +say is-straight-line([0, 0], [1, 1], [2, 3]); # False +say is-straight-line([1, 1], [1, 1], [1, 1]); # True +say is-straight-line([1000000, 1000000], [2000000, 2000000], [3000000, 3000000]); # True + + +sub is-straight-line(**@points) { + return True if @points.elems < 3; + + my ($x0, $y0) = @points.shift; + my ($x1, $y1) = @points.shift; + + my $dx = $x1 - $x0; + my $dy = $y1 - $y0; + + for @points -> $point { + return False if $dy * ($point[0] - $x0) != $dx * ($point[1] - $y0); + } + + return True; +} diff --git a/challenge-333/ash/raku/ch-2.raku b/challenge-333/ash/raku/ch-2.raku new file mode 100644 index 0000000000..0d9359c8e2 --- /dev/null +++ b/challenge-333/ash/raku/ch-2.raku @@ -0,0 +1,17 @@ +# Task 2 of the Weekly Challenge 333 +# https://theweeklychallenge.org/blog/perl-weekly-challenge-333/#TASK2 + +say duplicate-zeros(1, 0, 2, 3, 0, 4, 5, 0); # (1 0 0 2 3 0 0 4) +say duplicate-zeros(1, 2, 3); # (1 2 3) +say duplicate-zeros(1, 2, 3, 0); # (1 2 3 0) +say duplicate-zeros(0, 0, 1, 2); # (0 0 0 0) +say duplicate-zeros(1, 2, 0, 3, 4); # (1, 2, 0, 0, 3) + +sub duplicate-zeros(*@data) { + my $len = @data.elems; + + my @out; + $_ ?? @out.push($_) !! @out.push(0, 0) for @data; + + return @out[^$len]; +} |
