From a23e55532b71e04ec91b07038aa92164a99c65d1 Mon Sep 17 00:00:00 2001 From: Stephen Lynn Date: Tue, 6 Jun 2023 16:35:31 +0800 Subject: pwc 220 --- challenge-220/steve-g-lynn/blog.txt | 1 + challenge-220/steve-g-lynn/raku/ch-1.p6 | 8 ++++++++ challenge-220/steve-g-lynn/raku/ch-2.p6 | 17 +++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 challenge-220/steve-g-lynn/blog.txt create mode 100755 challenge-220/steve-g-lynn/raku/ch-1.p6 create mode 100755 challenge-220/steve-g-lynn/raku/ch-2.p6 diff --git a/challenge-220/steve-g-lynn/blog.txt b/challenge-220/steve-g-lynn/blog.txt new file mode 100644 index 0000000000..2ae85994be --- /dev/null +++ b/challenge-220/steve-g-lynn/blog.txt @@ -0,0 +1 @@ +https://thiujiac.blogspot.com/2023/06/pwc-220.html diff --git a/challenge-220/steve-g-lynn/raku/ch-1.p6 b/challenge-220/steve-g-lynn/raku/ch-1.p6 new file mode 100755 index 0000000000..1229f35306 --- /dev/null +++ b/challenge-220/steve-g-lynn/raku/ch-1.p6 @@ -0,0 +1,8 @@ +#!/usr/bin/perl6 + +sub common_characters( @words ) { + [(&)] @words.map( {$_.lc.comb.Set} ) +} + +say &common_characters(('Perl','Rust','Raku')); #Set(r) +say &common_characters(('love','live','leave')); #Set(e l v) diff --git a/challenge-220/steve-g-lynn/raku/ch-2.p6 b/challenge-220/steve-g-lynn/raku/ch-2.p6 new file mode 100755 index 0000000000..712e9eb8e8 --- /dev/null +++ b/challenge-220/steve-g-lynn/raku/ch-2.p6 @@ -0,0 +1,17 @@ +#!/usr/bin/perl6 + +multi sub is_perfect_square( Int $a, Int $b ) { + ($a+$b).sqrt %% 1; +} + +multi sub is_perfect_square( @ints ) { + ( [&&] (0 .. @ints-2).map( {&is_perfect_square( @ints[$_], @ints[$_+1] ) } ) ); +} + +sub squareful (@ints where @ints.elems==3) { + @ints.permutations.grep( {$_.&is_perfect_square} ) +} + +say &squareful((1,17,8)); #(1,8,17),(17,8,1) +say &squareful((2,2,2)); #((2 2 2) (2 2 2) (2 2 2) (2 2 2) (2 2 2) (2 2 2)) .permutations treats each element of @ints as unique, so all 6 permutations are returned. + -- cgit From bbd71ad749ca5dd0e81a0a5e0a156017b2083338 Mon Sep 17 00:00:00 2001 From: Stephen Lynn Date: Tue, 6 Jun 2023 16:43:52 +0800 Subject: ch-2.p6 fix --- challenge-220/steve-g-lynn/raku/ch-2.p6 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/challenge-220/steve-g-lynn/raku/ch-2.p6 b/challenge-220/steve-g-lynn/raku/ch-2.p6 index 712e9eb8e8..edeea0a7ac 100755 --- a/challenge-220/steve-g-lynn/raku/ch-2.p6 +++ b/challenge-220/steve-g-lynn/raku/ch-2.p6 @@ -9,9 +9,9 @@ multi sub is_perfect_square( @ints ) { } sub squareful (@ints where @ints.elems==3) { - @ints.permutations.grep( {$_.&is_perfect_square} ) + @ints.permutations.grep( {$_.&is_perfect_square} ).unique( :with(&[eqv]) ); } say &squareful((1,17,8)); #(1,8,17),(17,8,1) -say &squareful((2,2,2)); #((2 2 2) (2 2 2) (2 2 2) (2 2 2) (2 2 2) (2 2 2)) .permutations treats each element of @ints as unique, so all 6 permutations are returned. +say &squareful((2,2,2)); #((2 2 2) -- cgit From bcc5ed65920a39ad387714f12fa8ede117d249ca Mon Sep 17 00:00:00 2001 From: Stephen Lynn Date: Thu, 8 Jun 2023 02:00:04 +0800 Subject: ch-2.p6 tune --- challenge-220/steve-g-lynn/raku/ch-2.p6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge-220/steve-g-lynn/raku/ch-2.p6 b/challenge-220/steve-g-lynn/raku/ch-2.p6 index edeea0a7ac..460d8e1204 100755 --- a/challenge-220/steve-g-lynn/raku/ch-2.p6 +++ b/challenge-220/steve-g-lynn/raku/ch-2.p6 @@ -9,7 +9,7 @@ multi sub is_perfect_square( @ints ) { } sub squareful (@ints where @ints.elems==3) { - @ints.permutations.grep( {$_.&is_perfect_square} ).unique( :with(&[eqv]) ); + @ints.permutations.unique( :with(&[eqv]) ).grep( {$_.&is_perfect_square} ); } say &squareful((1,17,8)); #(1,8,17),(17,8,1) -- cgit