The Name Game: Difference between revisions

Content added Content deleted
No edit summary
(→‎{{header|Perl 6}}: Add perl 6 example)
Line 47:
Fee-fi-mo-melix
Felix!
 
=={{header|Perl 6}}==
{{works with|Rakudo|2018.03}}
Meh. The rules leave out some corner cases (see Steve) but what the heck, technically correct is the best kind of correct.
 
<lang perl6>sub mangle ($name, $initial) {
my $fl = $name.lc.substr(0,1);
$fl ~~ /<[aeiou]>/
?? $initial~$name.lc
!! $fl eq $initial
?? $name.substr(1)
!! $initial~$name.substr(1)
}
 
sub name-game (Str $name) {
qq:to/NAME-GAME/;
$name, $name, bo-{ mangle $name, 'b' }
Banana-fana fo-{ mangle $name, 'f' }
Fee-fi-mo-{ mangle $name, 'm' }
$name!
NAME-GAME
}
 
say name-game $_ for <Gary Billy Felix Mike Steve></lang>
{{out}}
<pre>Gary, Gary, bo-bary
Banana-fana fo-fary
Fee-fi-mo-mary
Gary!
 
Billy, Billy, bo-illy
Banana-fana fo-filly
Fee-fi-mo-milly
Billy!
 
Felix, Felix, bo-belix
Banana-fana fo-elix
Fee-fi-mo-melix
Felix!
 
Mike, Mike, bo-bike
Banana-fana fo-fike
Fee-fi-mo-ike
Mike!
 
Steve, Steve, bo-bteve
Banana-fana fo-fteve
Fee-fi-mo-mteve
Steve!
</pre>