The Name Game: Difference between revisions
Content deleted Content added
Added Go |
m finshed haskell source |
||
Line 322:
=={{header|Haskell}}==
<lang Haskell>
-- The Name Game, Ethan Riley, 22nd May 2018
Line 336 ⟶ 335:
| otherwise = False
where char = toUpper c
isSpecial :: Char -> Bool
isSpecial c
| char == 'B' = True
| char == 'F' = True
| char == 'M' = True
| otherwise = False
where char = toUpper c
shorten :: String -> String
Line 341 ⟶ 348:
| isVowel $ head name = map toLower name
| otherwise = map toLower $ tail name
line :: String -> Char -> String -> String
line prefix letter name
| letter == char = prefix ++ shorten name ++ "\n"
| otherwise = prefix ++ letter:[] ++ shorten name ++ "\n"
where char = toLower $ head name
theNameGame :: String -> String
theNameGame name =
line (name ++ ", " ++ name ++ ", bo-
line "Banana-fana fo-
line "Fee-fi-mo-
name ++ "!\n"
main =
mapM_ (putStrLn . theNameGame) ["Gary", "Earl", "Billy", "Felix", "Mike", "Steve"]
</lang>
Line 364 ⟶ 377:
Earl!
Billy, Billy, bo-
Banana-fana fo-filly
Fee-fi-mo-milly
Line 370 ⟶ 383:
Felix, Felix, bo-belix
Banana-fana fo-
Fee-fi-mo-melix
Felix!
Line 376 ⟶ 389:
Mike, Mike, bo-bike
Banana-fana fo-fike
Fee-fi-mo-
Mike!
|