aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-244/arne-sommer/raku/ch-1.raku5
-rwxr-xr-xchallenge-244/arne-sommer/raku/ch-2.raku20
-rwxr-xr-xchallenge-244/arne-sommer/raku/count-smaller18
-rwxr-xr-xchallenge-244/arne-sommer/raku/count-smaller-oneliner5
-rwxr-xr-xchallenge-244/arne-sommer/raku/count-smaller-oneliner-my5
-rwxr-xr-xchallenge-244/arne-sommer/raku/group-hero20
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