Demonstrate returning values from functions

main
Hammy 4 years ago
parent faa1ff3941
commit e677c12cdd

@ -0,0 +1,29 @@
sfOffice :: ([Char], [Char]) -> [Char]
sfOffice name = if surname < "L"
then nameText ++ " - PO Box 1234 - San Francisco, CA, 94111"
else nameText ++ " - PO Box 1010 - San Francisco, CA, 94109"
where surname = snd name
nameText = fst name ++ " " ++ surname
nyOffice :: ([Char], [Char]) -> [Char]
nyOffice name = nameText ++ ": PO Box 789 - New York, NY, 10013"
where nameText = fst name ++ " " ++ snd name
renoOffice :: (a, [Char]) -> [Char]
renoOffice name = nameText ++ " - PO Box 456 - Reno, NV 89523"
where nameText = snd name
getLocation :: [Char] -> ([Char], [Char]) -> [Char]
getLocation location = case location of
"ny" -> nyOffice
"sf" -> sfOffice
"reno" -> renoOffice
_ -> (\name -> fst name ++ " " ++ snd name)
addressLetter :: ([Char], [Char]) -> [Char] -> [Char]
addressLetter name location = locationFunction name
where locationFunction = getLocation location
Loading…
Cancel
Save