diff options
| -rw-r--r-- | challenge-063/markus-holzer/ch-1.raku | 8 | ||||
| -rw-r--r-- | challenge-063/markus-holzer/ch-2.raku | 19 |
2 files changed, 27 insertions, 0 deletions
diff --git a/challenge-063/markus-holzer/ch-1.raku b/challenge-063/markus-holzer/ch-1.raku new file mode 100644 index 0000000000..7336e63f9c --- /dev/null +++ b/challenge-063/markus-holzer/ch-1.raku @@ -0,0 +1,8 @@ +sub last-word( Str $sentence, Regex $matcher ) +{ + $sentence.words.grep( $matcher ).tail; +} + +say last-word( ' hello world', rx/ <[ea]> l / ); # 'hello' +say last-word( "Don't match too much, Chet!", rx:i/ ch . t / ); # 'Chet!' +say last-word( "spaces in regexp won't match", rx/ \s re / ); # undef diff --git a/challenge-063/markus-holzer/ch-2.raku b/challenge-063/markus-holzer/ch-2.raku new file mode 100644 index 0000000000..ba1eb40be2 --- /dev/null +++ b/challenge-063/markus-holzer/ch-2.raku @@ -0,0 +1,19 @@ +multi sub rotmodN( Str $orig ) +{ + rotmodN $orig.comb.List +} + +multi sub rotmodN ( List $orig, $n = $orig.elems ) +{ + my $work = $orig; + + for ( 1 .. Inf ).map( * % $n ).kv -> $i, $by + { + $work = $work.rotate: $by; + + return $i + 1 + if $work cmp $orig == Same + } +} + +say rotmodN 'xyxx'
\ No newline at end of file |
