From de2d86a12f148168296142e7e840ddd1ec4248b9 Mon Sep 17 00:00:00 2001 From: arnesom Date: Sun, 27 Feb 2022 00:26:13 +0100 Subject: Arne Sommer --- challenge-153/arne-sommer/blog.txt | 1 + challenge-153/arne-sommer/raku/ch-1.raku | 7 +++++++ challenge-153/arne-sommer/raku/ch-2.raku | 5 +++++ challenge-153/arne-sommer/raku/factorion-seq | 7 +++++++ challenge-153/arne-sommer/raku/factorions | 5 +++++ challenge-153/arne-sommer/raku/left-factorials-loop | 13 +++++++++++++ .../arne-sommer/raku/left-factorials-loop-cached | 14 ++++++++++++++ .../arne-sommer/raku/left-factorials-loop-cached-one | 18 ++++++++++++++++++ challenge-153/arne-sommer/raku/left-factorials-seq | 7 +++++++ .../arne-sommer/raku/left-factorials-seq-zero | 7 +++++++ challenge-153/arne-sommer/raku/left-factorials-silly | 3 +++ 11 files changed, 87 insertions(+) create mode 100644 challenge-153/arne-sommer/blog.txt create mode 100755 challenge-153/arne-sommer/raku/ch-1.raku create mode 100755 challenge-153/arne-sommer/raku/ch-2.raku create mode 100755 challenge-153/arne-sommer/raku/factorion-seq create mode 100755 challenge-153/arne-sommer/raku/factorions create mode 100755 challenge-153/arne-sommer/raku/left-factorials-loop create mode 100755 challenge-153/arne-sommer/raku/left-factorials-loop-cached create mode 100755 challenge-153/arne-sommer/raku/left-factorials-loop-cached-one create mode 100755 challenge-153/arne-sommer/raku/left-factorials-seq create mode 100755 challenge-153/arne-sommer/raku/left-factorials-seq-zero create mode 100755 challenge-153/arne-sommer/raku/left-factorials-silly diff --git a/challenge-153/arne-sommer/blog.txt b/challenge-153/arne-sommer/blog.txt new file mode 100644 index 0000000000..141609a75d --- /dev/null +++ b/challenge-153/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/just-the-fact.html diff --git a/challenge-153/arne-sommer/raku/ch-1.raku b/challenge-153/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..d456dad9a9 --- /dev/null +++ b/challenge-153/arne-sommer/raku/ch-1.raku @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +unit sub MAIN (:c(:$count) = 10); + +my $lf := ( $ = 1, ( * + ([*] 1 .. ++$) ) ... Inf ); + +say $lf[^$count].join(", "); diff --git a/challenge-153/arne-sommer/raku/ch-2.raku b/challenge-153/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..61cc136615 --- /dev/null +++ b/challenge-153/arne-sommer/raku/ch-2.raku @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (Int $n where $n > 0); + +say + ($n.comb.map({ [*] (1 .. $_) }).sum == $n); diff --git a/challenge-153/arne-sommer/raku/factorion-seq b/challenge-153/arne-sommer/raku/factorion-seq new file mode 100755 index 0000000000..21399295bc --- /dev/null +++ b/challenge-153/arne-sommer/raku/factorion-seq @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +unit sub MAIN (:c(:$count) = 10); + +my $fs := ( my $i = 1, { (++$i).comb.map({ [*] (1 .. $_) }).sum == $i ?? $i !! next } ... Inf); + +say $fs[^$count].join(", "); diff --git a/challenge-153/arne-sommer/raku/factorions b/challenge-153/arne-sommer/raku/factorions new file mode 100755 index 0000000000..61cc136615 --- /dev/null +++ b/challenge-153/arne-sommer/raku/factorions @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (Int $n where $n > 0); + +say + ($n.comb.map({ [*] (1 .. $_) }).sum == $n); diff --git a/challenge-153/arne-sommer/raku/left-factorials-loop b/challenge-153/arne-sommer/raku/left-factorials-loop new file mode 100755 index 0000000000..814ac814d7 --- /dev/null +++ b/challenge-153/arne-sommer/raku/left-factorials-loop @@ -0,0 +1,13 @@ +#! /usr/bin/env raku + +my $lf := gather +{ + my $index = 0; + + loop + { + take (0 .. $index++).map({ [*] (1 .. $_) }).sum; + } +} + +say $lf[^10].join(", "); diff --git a/challenge-153/arne-sommer/raku/left-factorials-loop-cached b/challenge-153/arne-sommer/raku/left-factorials-loop-cached new file mode 100755 index 0000000000..7001dc2ad2 --- /dev/null +++ b/challenge-153/arne-sommer/raku/left-factorials-loop-cached @@ -0,0 +1,14 @@ +#! /usr/bin/env raku + +my $lf := gather +{ + my $index = 0; + my $prev = 0; + + loop + { + take $prev += ( [*] (1 .. $index++) ).sum; + } +} + +say $lf[^10].join(", "); diff --git a/challenge-153/arne-sommer/raku/left-factorials-loop-cached-one b/challenge-153/arne-sommer/raku/left-factorials-loop-cached-one new file mode 100755 index 0000000000..614f708f69 --- /dev/null +++ b/challenge-153/arne-sommer/raku/left-factorials-loop-cached-one @@ -0,0 +1,18 @@ +#! /usr/bin/env raku + +unit sub MAIN (:z(:$zero-based)); + +my $lf := gather +{ + my $index = 0; + my $prev = 0; + + take 0 if $zero-based; + + loop + { + take $prev += ( [*] (1 .. $index++) ).sum; + } +} + +say $lf[^10].join(", "); diff --git a/challenge-153/arne-sommer/raku/left-factorials-seq b/challenge-153/arne-sommer/raku/left-factorials-seq new file mode 100755 index 0000000000..d456dad9a9 --- /dev/null +++ b/challenge-153/arne-sommer/raku/left-factorials-seq @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +unit sub MAIN (:c(:$count) = 10); + +my $lf := ( $ = 1, ( * + ([*] 1 .. ++$) ) ... Inf ); + +say $lf[^$count].join(", "); diff --git a/challenge-153/arne-sommer/raku/left-factorials-seq-zero b/challenge-153/arne-sommer/raku/left-factorials-seq-zero new file mode 100755 index 0000000000..a837789bb9 --- /dev/null +++ b/challenge-153/arne-sommer/raku/left-factorials-seq-zero @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +unit sub MAIN (:c(:$count) = 10); + +my $lf := ( 0, 1, ( * + ([*] 1 .. ++$) ) ... Inf ); + +say $lf[^$count].join(", "); diff --git a/challenge-153/arne-sommer/raku/left-factorials-silly b/challenge-153/arne-sommer/raku/left-factorials-silly new file mode 100755 index 0000000000..37e97d66a8 --- /dev/null +++ b/challenge-153/arne-sommer/raku/left-factorials-silly @@ -0,0 +1,3 @@ +#! /usr/bin/env raku + +say "1, 2, 4, 10, 34, 154, 874, 5914, 46234, 409114"; -- cgit