diff options
| -rw-r--r-- | challenge-030/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-030/arne-sommer/perl6/ch-1.p6 | 8 | ||||
| -rwxr-xr-x | challenge-030/arne-sommer/perl6/ch-2.p6 | 12 | ||||
| -rwxr-xr-x | challenge-030/arne-sommer/perl6/series-3 | 3 | ||||
| -rwxr-xr-x | challenge-030/arne-sommer/perl6/series-3-cheating | 12 | ||||
| -rwxr-xr-x | challenge-030/arne-sommer/perl6/series-3-cheating~ | 3 | ||||
| -rwxr-xr-x | challenge-030/arne-sommer/perl6/series-3-unduplicated | 3 | ||||
| -rwxr-xr-x | challenge-030/arne-sommer/perl6/series-3-unduplicated2 | 11 | ||||
| -rwxr-xr-x | challenge-030/arne-sommer/perl6/sun-x-mas | 8 | ||||
| -rwxr-xr-x | challenge-030/arne-sommer/perl6/sun-x-mas-grep | 5 | ||||
| -rwxr-xr-x | challenge-030/arne-sommer/perl6/sun-x-mas-oneliner | 5 | ||||
| -rwxr-xr-x | challenge-030/arne-sommer/perl6/sun-x-mas-where | 8 |
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; +} |
