diff options
| -rw-r--r-- | challenge-023/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-023/stuart-little/raku/ch-1.p6 | 10 | ||||
| -rwxr-xr-x | challenge-023/stuart-little/raku/ch-2.p6 | 14 |
3 files changed, 25 insertions, 0 deletions
diff --git a/challenge-023/stuart-little/README b/challenge-023/stuart-little/README new file mode 100644 index 0000000000..78439907de --- /dev/null +++ b/challenge-023/stuart-little/README @@ -0,0 +1 @@ +Solutions by Stuart Little diff --git a/challenge-023/stuart-little/raku/ch-1.p6 b/challenge-023/stuart-little/raku/ch-1.p6 new file mode 100755 index 0000000000..d8deac2344 --- /dev/null +++ b/challenge-023/stuart-little/raku/ch-1.p6 @@ -0,0 +1,10 @@ +#!/usr/bin/env perl6 +use v6; + +sub dff(@a where {$_.all ~~ Int}) { + @a.rotor(2 => -1).map({ $_[1] - $_[0] }) +} + +for (1..@*ARGS[0].Int).map({ reduce { $^b.($^a) }, @*ARGS[1..*].map(*.Int), |(&dff xx $_) }) {.say} + +# run as <script> <number of difference iterations> <space-separated integer array entries> diff --git a/challenge-023/stuart-little/raku/ch-2.p6 b/challenge-023/stuart-little/raku/ch-2.p6 new file mode 100755 index 0000000000..2209962027 --- /dev/null +++ b/challenge-023/stuart-little/raku/ch-2.p6 @@ -0,0 +1,14 @@ +#!/usr/bin/env perl6 +use v6; + +my @PRIMES=(2..*).grep(*.is-prime); + +sub fct($n,@a) { + $n.abs == 1 && return @a; + my $fact=@PRIMES.first($n %% *); + return fct(($n div $fact), (|@a,$fact)); +} + +say @*ARGS[0].Int.&fct(()) + +# run as <script> <integer> |
