aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-030/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-030/arne-sommer/perl6/ch-1.p68
-rwxr-xr-xchallenge-030/arne-sommer/perl6/ch-2.p612
-rwxr-xr-xchallenge-030/arne-sommer/perl6/series-33
-rwxr-xr-xchallenge-030/arne-sommer/perl6/series-3-cheating12
-rwxr-xr-xchallenge-030/arne-sommer/perl6/series-3-cheating~3
-rwxr-xr-xchallenge-030/arne-sommer/perl6/series-3-unduplicated3
-rwxr-xr-xchallenge-030/arne-sommer/perl6/series-3-unduplicated211
-rwxr-xr-xchallenge-030/arne-sommer/perl6/sun-x-mas8
-rwxr-xr-xchallenge-030/arne-sommer/perl6/sun-x-mas-grep5
-rwxr-xr-xchallenge-030/arne-sommer/perl6/sun-x-mas-oneliner5
-rwxr-xr-xchallenge-030/arne-sommer/perl6/sun-x-mas-where8
12 files changed, 79 insertions, 0 deletions
diff --git a/challenge-030/arne-sommer/blog.txt b/challenge-030/arne-sommer/blog.txt
new file mode 100644
index 0000000000..984a9253b9
--- /dev/null
+++ b/challenge-030/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://perl6.eu/xmas-12.html
diff --git a/challenge-030/arne-sommer/perl6/ch-1.p6 b/challenge-030/arne-sommer/perl6/ch-1.p6
new file mode 100755
index 0000000000..9a6ac0ecb8
--- /dev/null
+++ b/challenge-030/arne-sommer/perl6/ch-1.p6
@@ -0,0 +1,8 @@
+#! /usr/bin/env perl6
+
+unit sub MAIN (UInt :$from = 2019, UInt :$to = 2100);
+
+for $from ... $to -> $year
+{
+ say "25 Dec $year is Sunday." if Date.new($year, 12, 25).day-of-week == 7;
+}
diff --git a/challenge-030/arne-sommer/perl6/ch-2.p6 b/challenge-030/arne-sommer/perl6/ch-2.p6
new file mode 100755
index 0000000000..577cae6b95
--- /dev/null
+++ b/challenge-030/arne-sommer/perl6/ch-2.p6
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl6
+
+my %seen;
+
+for (1 .. 10, 1..10, 1..10).flat.combinations(3).unique(:with(&[eqv])).grep(*.sum == 12)
+{
+ my @sorted = $_.sort;
+
+ next if %seen{@sorted.Str};
+ say @sorted;
+ %seen{@sorted.Str} = True;
+}
diff --git a/challenge-030/arne-sommer/perl6/series-3 b/challenge-030/arne-sommer/perl6/series-3
new file mode 100755
index 0000000000..04490aaf56
--- /dev/null
+++ b/challenge-030/arne-sommer/perl6/series-3
@@ -0,0 +1,3 @@
+#! /usr/bin/env perl6
+
+.say for (1..10, 1..10, 1..10).flat.combinations(3).unique(:with(&[eqv])).grep(*.sum == 12);
diff --git a/challenge-030/arne-sommer/perl6/series-3-cheating b/challenge-030/arne-sommer/perl6/series-3-cheating
new file mode 100755
index 0000000000..577cae6b95
--- /dev/null
+++ b/challenge-030/arne-sommer/perl6/series-3-cheating
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl6
+
+my %seen;
+
+for (1 .. 10, 1..10, 1..10).flat.combinations(3).unique(:with(&[eqv])).grep(*.sum == 12)
+{
+ my @sorted = $_.sort;
+
+ next if %seen{@sorted.Str};
+ say @sorted;
+ %seen{@sorted.Str} = True;
+}
diff --git a/challenge-030/arne-sommer/perl6/series-3-cheating~ b/challenge-030/arne-sommer/perl6/series-3-cheating~
new file mode 100755
index 0000000000..38bf4bb232
--- /dev/null
+++ b/challenge-030/arne-sommer/perl6/series-3-cheating~
@@ -0,0 +1,3 @@
+#! /usr/bin/env perl6
+
+.say for (1 .. 10, 1..10, 1..10).flat.combinations(3).unique(:with(&[eqv])).grep({ [<=] @_ }).grep(*.sum == 12);
diff --git a/challenge-030/arne-sommer/perl6/series-3-unduplicated b/challenge-030/arne-sommer/perl6/series-3-unduplicated
new file mode 100755
index 0000000000..7c8662572d
--- /dev/null
+++ b/challenge-030/arne-sommer/perl6/series-3-unduplicated
@@ -0,0 +1,3 @@
+#! /usr/bin/env perl6
+
+.say for (1..10, 1..10, 1..10).flat.combinations(3)>>.sort.unique(:with(&[eqv])).grep(*.sum == 12);
diff --git a/challenge-030/arne-sommer/perl6/series-3-unduplicated2 b/challenge-030/arne-sommer/perl6/series-3-unduplicated2
new file mode 100755
index 0000000000..1e94300c08
--- /dev/null
+++ b/challenge-030/arne-sommer/perl6/series-3-unduplicated2
@@ -0,0 +1,11 @@
+#! /usr/bin/env perl6
+
+my @source = (1..10, 1..10, 1..10).flat;
+my @comb = @source.combinations(3)>>.sort;
+
+say @comb.WHAT;
+
+my @unique = @comb.unique(:with(&[eqv]));
+my @result = @unique.grep(*.sum == 12);
+
+.say for @result;
diff --git a/challenge-030/arne-sommer/perl6/sun-x-mas b/challenge-030/arne-sommer/perl6/sun-x-mas
new file mode 100755
index 0000000000..9a6ac0ecb8
--- /dev/null
+++ b/challenge-030/arne-sommer/perl6/sun-x-mas
@@ -0,0 +1,8 @@
+#! /usr/bin/env perl6
+
+unit sub MAIN (UInt :$from = 2019, UInt :$to = 2100);
+
+for $from ... $to -> $year
+{
+ say "25 Dec $year is Sunday." if Date.new($year, 12, 25).day-of-week == 7;
+}
diff --git a/challenge-030/arne-sommer/perl6/sun-x-mas-grep b/challenge-030/arne-sommer/perl6/sun-x-mas-grep
new file mode 100755
index 0000000000..b315517269
--- /dev/null
+++ b/challenge-030/arne-sommer/perl6/sun-x-mas-grep
@@ -0,0 +1,5 @@
+#! /usr/bin/env perl6
+
+(@*ARGS[0] // 2019 ... @*ARGS[1] // 2100)
+ .grep({ Date.new($_, 12, 25).day-of-week == 7 })
+ .map({ say "25 Dec $_ is Sunday." });
diff --git a/challenge-030/arne-sommer/perl6/sun-x-mas-oneliner b/challenge-030/arne-sommer/perl6/sun-x-mas-oneliner
new file mode 100755
index 0000000000..3db4671ab2
--- /dev/null
+++ b/challenge-030/arne-sommer/perl6/sun-x-mas-oneliner
@@ -0,0 +1,5 @@
+#! /usr/bin/env perl6
+
+say "25 Dec $_ is Sunday."
+ if Date.new($_, 12, 25).day-of-week == 7
+ for @*ARGS[0] // 2019 ... @*ARGS[1] // 2100;
diff --git a/challenge-030/arne-sommer/perl6/sun-x-mas-where b/challenge-030/arne-sommer/perl6/sun-x-mas-where
new file mode 100755
index 0000000000..39fab21544
--- /dev/null
+++ b/challenge-030/arne-sommer/perl6/sun-x-mas-where
@@ -0,0 +1,8 @@
+#! /usr/bin/env perl6
+
+unit sub MAIN (Int :$from = 2019, Int :$to where $to >= $from = 2100);
+
+for $from .. $to -> $year
+{
+ say "25 Dec $year is Sunday." if Date.new($year, 12, 25).day-of-week == 7;
+}