From d90c93f2b875a0a361580fe8061a75036c3cb76e Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sun, 9 Feb 2025 14:16:38 +0100 Subject: solutions week 307 --- challenge-307/wambash/raku/ch-1.raku | 18 ++++++++++++++++++ challenge-307/wambash/raku/ch-2.raku | 19 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 challenge-307/wambash/raku/ch-1.raku create mode 100644 challenge-307/wambash/raku/ch-2.raku diff --git a/challenge-307/wambash/raku/ch-1.raku b/challenge-307/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..31b784d106 --- /dev/null +++ b/challenge-307/wambash/raku/ch-1.raku @@ -0,0 +1,18 @@ +#!/usr/bin/env raku + +sub check-order (+@ints) { + @ints Z== @ints.sort + andthen .grep: *.not, :k +} + +multi MAIN (Bool :test($)!) { + use Test; + is check-order(5,2,4,3,1),(0,2,3,4); + is check-order(1, 2, 1, 1, 3), (1,3); + is check-order(3, 1, 3, 2, 3), (0,1,3); + done-testing; +} + +multi MAIN (+ints) { + put check-order ints +} diff --git a/challenge-307/wambash/raku/ch-2.raku b/challenge-307/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..1184ed5b32 --- /dev/null +++ b/challenge-307/wambash/raku/ch-2.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +sub find-anagrams (+words) { + words + andthen .map: *.comb.Bag + andthen .unique + andthen .elems +} + +multi MAIN (Bool :test($)!) { + use Test; + is find-anagrams(), 3; + is find-anagrams(), 2; + done-testing; +} + +multi MAIN (+words) { + say find-anagrams words +} -- cgit From f6283b7060e52c904e7f43101c528791ed783d74 Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sun, 9 Feb 2025 15:43:10 +0100 Subject: solutions week 307 -- Julia --- challenge-307/wambash/julia/ch-1.jl | 14 ++++++++++++++ challenge-307/wambash/julia/ch-2.jl | 13 +++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 challenge-307/wambash/julia/ch-1.jl create mode 100644 challenge-307/wambash/julia/ch-2.jl diff --git a/challenge-307/wambash/julia/ch-1.jl b/challenge-307/wambash/julia/ch-1.jl new file mode 100644 index 0000000000..c53f7440a0 --- /dev/null +++ b/challenge-307/wambash/julia/ch-1.jl @@ -0,0 +1,14 @@ +check_order(ints) = keys(ints)[ints.!==sort(ints)] + + +using Test + +function TEST() + @testset "Check Order" begin + @test check_order([5, 2, 4, 3, 1]) == [1,3,4,5] + @test check_order([1, 2, 1, 1, 3]) == [2,4] + @test check_order([3, 1, 3, 2, 3]) == [1,2,4] + end +end + +TEST() diff --git a/challenge-307/wambash/julia/ch-2.jl b/challenge-307/wambash/julia/ch-2.jl new file mode 100644 index 0000000000..251ebdf7f9 --- /dev/null +++ b/challenge-307/wambash/julia/ch-2.jl @@ -0,0 +1,13 @@ +using Lazy +find_anagrams(words) = @>> words map(frequencies) unique length + +using Test + +function TEST() + @testset "Find Anagrams" begin + @test find_anagrams(["acca", "dog", "god", "perl", "repl"]) == 3 + @test find_anagrams(["abba", "baba", "aabb", "ab", "ab"]) == 2 + end +end + +TEST() -- cgit