From 660202a5a8b58784aa2b51e33d8d1e86a94a8c21 Mon Sep 17 00:00:00 2001 From: Asher Harvey-Smith Date: Mon, 15 Apr 2024 23:26:28 +0100 Subject: raku --- challenge-265/asherbhs/raku/ch-1.raku | 9 +++++++++ challenge-265/asherbhs/raku/ch-2.raku | 13 +++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 challenge-265/asherbhs/raku/ch-1.raku create mode 100644 challenge-265/asherbhs/raku/ch-2.raku diff --git a/challenge-265/asherbhs/raku/ch-1.raku b/challenge-265/asherbhs/raku/ch-1.raku new file mode 100644 index 0000000000..1eaf883865 --- /dev/null +++ b/challenge-265/asherbhs/raku/ch-1.raku @@ -0,0 +1,9 @@ +sub appearance(Int:D @ints --> Int) { + my @keys = @ints.Bag.grep(*.value ≥ 0.33 × @ints)».key; + @keys ?? min @keys !! Int +} + +say appearance Array[Int:D].new: 1, 2, 3, 3, 3, 3, 4, 2; +say appearance Array[Int:D].new: 1, 1; +say appearance Array[Int:D].new: 1, 2, 3; +say appearance Array[Int:D].new: 1, 2, 3, 4; diff --git a/challenge-265/asherbhs/raku/ch-2.raku b/challenge-265/asherbhs/raku/ch-2.raku new file mode 100644 index 0000000000..d58a4bf81c --- /dev/null +++ b/challenge-265/asherbhs/raku/ch-2.raku @@ -0,0 +1,13 @@ +sub completing-word(Str:D $str, Str:D @str --> Str:D) { + my $str-bag = $str.lc.comb.grep(/<[a..z]>/).Bag; + my @completing = @str.grep({ + my $other-bag = .lc.comb.Bag; + $str-bag.Set eqv $other-bag.Set and not $str-bag «>» $other-bag + }); + @completing ?? @completing.min(*.chars) !! '' +} + +say completing-word 'aBc 11c', Array[Str:D].new: 'accbbb', 'abc', 'abbc'; +say completing-word 'Da2 abc', Array[Str:D].new: 'abcm', 'baacd', 'abaadc'; +say completing-word 'JB 007', Array[Str:D].new: 'jj', 'bb', 'bjb'; +say completing-word 'aBcDeFg', Array[Str:D].new: 'abc', 'bcd', 'cde'; -- cgit From 3730ce23730bec6bc545a345c82f863cd7f9fe29 Mon Sep 17 00:00:00 2001 From: Asher Harvey-Smith Date: Mon, 15 Apr 2024 23:35:14 +0100 Subject: fix challenge 2 in raku --- challenge-265/asherbhs/raku/ch-2.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge-265/asherbhs/raku/ch-2.raku b/challenge-265/asherbhs/raku/ch-2.raku index d58a4bf81c..0488e9ec65 100644 --- a/challenge-265/asherbhs/raku/ch-2.raku +++ b/challenge-265/asherbhs/raku/ch-2.raku @@ -2,7 +2,7 @@ sub completing-word(Str:D $str, Str:D @str --> Str:D) { my $str-bag = $str.lc.comb.grep(/<[a..z]>/).Bag; my @completing = @str.grep({ my $other-bag = .lc.comb.Bag; - $str-bag.Set eqv $other-bag.Set and not $str-bag «>» $other-bag + $str-bag.Set ⊆ $other-bag.Set and not $str-bag «>» $other-bag }); @completing ?? @completing.min(*.chars) !! '' } -- cgit From 8123fe93265cb43f46530e36c610160167c8cc2a Mon Sep 17 00:00:00 2001 From: Asher Harvey-Smith Date: Tue, 16 Apr 2024 12:29:04 +0100 Subject: raku simplification --- challenge-265/asherbhs/raku/ch-2.raku | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/challenge-265/asherbhs/raku/ch-2.raku b/challenge-265/asherbhs/raku/ch-2.raku index 0488e9ec65..cca5dd9640 100644 --- a/challenge-265/asherbhs/raku/ch-2.raku +++ b/challenge-265/asherbhs/raku/ch-2.raku @@ -1,9 +1,6 @@ sub completing-word(Str:D $str, Str:D @str --> Str:D) { my $str-bag = $str.lc.comb.grep(/<[a..z]>/).Bag; - my @completing = @str.grep({ - my $other-bag = .lc.comb.Bag; - $str-bag.Set ⊆ $other-bag.Set and not $str-bag «>» $other-bag - }); + my @completing = @str.grep($str-bag ⊆ *.comb.Bag); @completing ?? @completing.min(*.chars) !! '' } -- cgit From 2cd88e77862b139e1f093ebd33825e80e1ff411e Mon Sep 17 00:00:00 2001 From: Asher Harvey-Smith Date: Tue, 16 Apr 2024 12:35:43 +0100 Subject: cannot stop tweaking for the life of me --- challenge-265/asherbhs/raku/ch-1.raku | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/challenge-265/asherbhs/raku/ch-1.raku b/challenge-265/asherbhs/raku/ch-1.raku index 1eaf883865..a81cddabca 100644 --- a/challenge-265/asherbhs/raku/ch-1.raku +++ b/challenge-265/asherbhs/raku/ch-1.raku @@ -1,5 +1,6 @@ sub appearance(Int:D @ints --> Int) { - my @keys = @ints.Bag.grep(*.value ≥ 0.33 × @ints)».key; + my $len = 0.33 × @ints; + my @keys = @ints.Bag.grep(*.value ≥ $len)».key; @keys ?? min @keys !! Int } -- cgit