diff options
| -rw-r--r-- | challenge-122/simon-proctor/raku/ch-1.raku | 19 | ||||
| -rw-r--r-- | challenge-122/simon-proctor/raku/ch-2.raku | 11 |
2 files changed, 30 insertions, 0 deletions
diff --git a/challenge-122/simon-proctor/raku/ch-1.raku b/challenge-122/simon-proctor/raku/ch-1.raku new file mode 100644 index 0000000000..5c685c3dd0 --- /dev/null +++ b/challenge-122/simon-proctor/raku/ch-1.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +sub avg($avg,$val) { + state $count = 1; + my $sum = $avg*$count; + $sum += $val; + $count++; + $sum / $count; +} + +#| Given a list of numbers print the average of the list with each point in the list +multi sub MAIN( *@N ) { + ( [\[&avg]] @N ).join(", ").say; +} + +#| Read from STDIN and output the running average after each number +multi sub MAIN() { + .say for [\[&avg]] $*IN.lines; +} diff --git a/challenge-122/simon-proctor/raku/ch-2.raku b/challenge-122/simon-proctor/raku/ch-2.raku new file mode 100644 index 0000000000..8487b83a62 --- /dev/null +++ b/challenge-122/simon-proctor/raku/ch-2.raku @@ -0,0 +1,11 @@ +#!/usr/bin/env raku + +#| Given a number print all the possible ways to score that in basketball +sub MAIN (Int() $N) { + .say for (|(1 xx $N), |(2 xx ($N div 2)), |(3 xx ($N div 3))) + .combinations(1..$N) + .unique(:with(&[eqv])) + .grep( -> @l { ([+] @l) ~~ $N } ) + .map( -> @l { @l.permutations.unique(:with(&[eqv])).Slip } ) + .map( *.join(",") ) +} |
