diff options
| -rwxr-xr-x | challenge-244/arne-sommer/raku/ch-1.raku | 5 | ||||
| -rwxr-xr-x | challenge-244/arne-sommer/raku/ch-2.raku | 20 | ||||
| -rwxr-xr-x | challenge-244/arne-sommer/raku/count-smaller | 18 | ||||
| -rwxr-xr-x | challenge-244/arne-sommer/raku/count-smaller-oneliner | 5 | ||||
| -rwxr-xr-x | challenge-244/arne-sommer/raku/count-smaller-oneliner-my | 5 | ||||
| -rwxr-xr-x | challenge-244/arne-sommer/raku/group-hero | 20 |
6 files changed, 73 insertions, 0 deletions
diff --git a/challenge-244/arne-sommer/raku/ch-1.raku b/challenge-244/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..ad0dfa5f49 --- /dev/null +++ b/challenge-244/arne-sommer/raku/ch-1.raku @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@int where @int.elems > 0 && all(@int) ~~ Int); + +say "(" ~ @int.map({ @int.grep( * < $_ ).elems }).join(", ") ~ ")"; diff --git a/challenge-244/arne-sommer/raku/ch-2.raku b/challenge-244/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..168d451fb7 --- /dev/null +++ b/challenge-244/arne-sommer/raku/ch-2.raku @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@nums where @nums.elems > 0 && all(@nums) ~~ Int, + :v(:$verbose)); + +my $group = 0; +my $total = 0; + +for @nums.combinations(1..Inf) -> @candidate +{ + my $max = @candidate.max; + my $min = @candidate.min; + my $sum = $max ** 2 * $min; + + $total += $sum; + + say ": Group { ++$group }: ({ @candidate.join(",") }) => square(max({ @candidate.join(",") })) * min({ @candidate.join(",") }) => { $max ** 2 } * $min => $sum" if $verbose; +} + +say $total;
\ No newline at end of file diff --git a/challenge-244/arne-sommer/raku/count-smaller b/challenge-244/arne-sommer/raku/count-smaller new file mode 100755 index 0000000000..4cde12dc92 --- /dev/null +++ b/challenge-244/arne-sommer/raku/count-smaller @@ -0,0 +1,18 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@int where @int.elems > 0 && all(@int) ~~ Int, + :v(:$verbose)); + +my $index = 0; +my @output; + +for @int -> $int +{ + my $count = @int.grep( * < $int).elems; + + say ": For index = { $index++ }, count of elements less $int is $count." if $verbose; + + @output.push: $count; +} + +say "(" ~ @output.join(", ") ~ ")"; diff --git a/challenge-244/arne-sommer/raku/count-smaller-oneliner b/challenge-244/arne-sommer/raku/count-smaller-oneliner new file mode 100755 index 0000000000..ad0dfa5f49 --- /dev/null +++ b/challenge-244/arne-sommer/raku/count-smaller-oneliner @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@int where @int.elems > 0 && all(@int) ~~ Int); + +say "(" ~ @int.map({ @int.grep( * < $_ ).elems }).join(", ") ~ ")"; diff --git a/challenge-244/arne-sommer/raku/count-smaller-oneliner-my b/challenge-244/arne-sommer/raku/count-smaller-oneliner-my new file mode 100755 index 0000000000..eacdc0c1e1 --- /dev/null +++ b/challenge-244/arne-sommer/raku/count-smaller-oneliner-my @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@int where @int.elems > 0 && all(@int) ~~ Int); + +say "(" ~ @int.map({ my $map = $_; @int.grep({ $_ < $map }).elems }).join(", ") ~ ")"; diff --git a/challenge-244/arne-sommer/raku/group-hero b/challenge-244/arne-sommer/raku/group-hero new file mode 100755 index 0000000000..168d451fb7 --- /dev/null +++ b/challenge-244/arne-sommer/raku/group-hero @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@nums where @nums.elems > 0 && all(@nums) ~~ Int, + :v(:$verbose)); + +my $group = 0; +my $total = 0; + +for @nums.combinations(1..Inf) -> @candidate +{ + my $max = @candidate.max; + my $min = @candidate.min; + my $sum = $max ** 2 * $min; + + $total += $sum; + + say ": Group { ++$group }: ({ @candidate.join(",") }) => square(max({ @candidate.join(",") })) * min({ @candidate.join(",") }) => { $max ** 2 } * $min => $sum" if $verbose; +} + +say $total;
\ No newline at end of file |
