The Name Game: Difference between revisions

added Factor
(Added Kotlin)
(added Factor)
Line 47:
Fee-fi-mo-melix
Felix!
 
=={{header|Factor}}==
{{trans|Kotlin}}
<lang factor>USING: ascii combinators interpolate kernel locals pair-rocket
qw sequences ;
IN: rosetta-code.name-game
 
: vowel? ( char -- ? ) "AEIOU" member? ;
 
:: name-game ( Name -- )
 
Name first :> L
Name >lower :> name! L vowel? [ name rest name! ] unless
"b" :> B!
"f" :> F!
"m" :> M!
L { CHAR: B => [ "" B! ]
CHAR: F => [ "" F! ]
CHAR: M => [ "" M! ] [ drop ] } case
Name Name B name F name M name Name
"${0}, ${1}, bo-${2}${3}
Banana-fana fo-${4}${5}
Fee-fi-mo-${6}${7}
${8}!\n\n" 9 ninterpolate ;
 
qw{ Gary Earl Billy Felix Milton Steve } [ name-game ] each</lang>
{{out}}
<pre>
Gary, Gary, bo-bary
Banana-fana fo-fary
Fee-fi-mo-mary
Gary!
 
Earl, Earl, bo-bearl
Banana-fana fo-fearl
Fee-fi-mo-mearl
Earl!
 
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!
 
Milton, Milton, bo-bilton
Banana-fana fo-filton
Fee-fi-mo-ilton
Milton!
 
Steve, Steve, bo-bteve
Banana-fana fo-fteve
Fee-fi-mo-mteve
Steve!
</pre>
 
=={{header|Kotlin}}==
1,827

edits