From 71e73f8770244bb51b12c37cfb43aff1eca5e7e6 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Tue, 1 Oct 2024 17:22:05 +0000 Subject: Challenge 289 Solutions (Raku) --- challenge-289/mark-anderson/raku/ch-1.raku | 11 +++++++++++ challenge-289/mark-anderson/raku/ch-2.raku | 27 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 challenge-289/mark-anderson/raku/ch-1.raku create mode 100644 challenge-289/mark-anderson/raku/ch-2.raku diff --git a/challenge-289/mark-anderson/raku/ch-1.raku b/challenge-289/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..4c84b1277d --- /dev/null +++ b/challenge-289/mark-anderson/raku/ch-1.raku @@ -0,0 +1,11 @@ +#!/usr/bin/env raku +use Test; + +is third-max(5,6,4,1), 4; +is third-max(4,5), 5; +is third-max(1,2,2,3), 1; + +sub third-max(+@ints) +{ + .[2] // .[0] given @ints.unique.sort(-*) +} diff --git a/challenge-289/mark-anderson/raku/ch-2.raku b/challenge-289/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..730816d540 --- /dev/null +++ b/challenge-289/mark-anderson/raku/ch-2.raku @@ -0,0 +1,27 @@ +#!/usr/bin/env raku + +my $text = chomp q:to/END/; + This supposed Cambridge research is unfortunately an urban + legend. However, the effect has been studied. For example— + and with a title that probably made the journal’s editor a + little nervous—Raeding wrods with jubmled lettres: there is + a cost by Rayner, White, et. al. looked at reading speed and + comprehension of jumbled text. + END + +say jumbled-letters($text); + +sub jumbled-letters($text) +{ + my @split = $text.split(/ \s+ || \— || \- /, :v); + + for @split[0,2...*] + { + my @chars = .comb; + my @alphas = @chars.grep(* (elem) ['a'...'z','A'...'Z'], :k); + @chars[@alphas[1..*-2]] .= pick(*); + $_ = [~] @chars + } + + [~] @split +} -- cgit From d080a526fd7aafc6793e8dc5bd25809b48a6aea7 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Tue, 1 Oct 2024 21:54:19 +0000 Subject: Challenge 289 Solutions (Raku) --- challenge-289/mark-anderson/raku/ch-2.raku | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/challenge-289/mark-anderson/raku/ch-2.raku b/challenge-289/mark-anderson/raku/ch-2.raku index 730816d540..a1ffc5c2d3 100644 --- a/challenge-289/mark-anderson/raku/ch-2.raku +++ b/challenge-289/mark-anderson/raku/ch-2.raku @@ -11,9 +11,11 @@ my $text = chomp q:to/END/; say jumbled-letters($text); +say jumbled-letters("They've shouldn't've, __LINE__ under_score y'all you're"); + sub jumbled-letters($text) { - my @split = $text.split(/ \s+ || \— || \- /, :v); + my @split = $text.split(/ <[\s — - ]> /, :v); for @split[0,2...*] { -- cgit From 367203c52b72a1ea83ff578f890cdcb99ad41bf5 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Tue, 1 Oct 2024 21:58:46 +0000 Subject: Challenge 289 Solutions (Raku) --- challenge-289/mark-anderson/raku/ch-2.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge-289/mark-anderson/raku/ch-2.raku b/challenge-289/mark-anderson/raku/ch-2.raku index a1ffc5c2d3..51d689e0a5 100644 --- a/challenge-289/mark-anderson/raku/ch-2.raku +++ b/challenge-289/mark-anderson/raku/ch-2.raku @@ -15,7 +15,7 @@ say jumbled-letters("They've shouldn't've, __LINE__ under_score y'all you're"); sub jumbled-letters($text) { - my @split = $text.split(/ <[\s — - ]> /, :v); + my @split = $text.split(/ <[\s — -]> /, :v); for @split[0,2...*] { -- cgit