
It works !
Thank you so much !
Have a nice day~
2014-04-20 22:09 GMT+09:00 Roel van Dijk
On 20 April 2014 14:57, S. H. Aegis
wrote: Is there any other ways to use variables outside of the "do-block"?
You can pass the list of names as an argument where it is needed.
import Data.List import Data.List.Split import Data.Char import Data.Maybe
main :: IO () main = do names <- readFile "names.txt" print $ sum $ map (\x -> getPosition names x * getScore x) names
getPosition :: [String] -> String -> Int getPosition names x = fromMaybe 0 (elemIndex x $ sortedNamesList names) + 1
getScore :: String -> Int getScore xs = sum $ map (\x -> ord x - 64) xs
sortedNamesList :: [String] -> [String] sortedNamesList names = sort $ nameList names
nameList :: String -> [String] nameList = split (dropDelims . dropBlanks $ oneOf ",\"")
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners
-- Sok Ha, CHANG Dr. Chang's Clinic. #203. 503-23. AmSa-Dong, GangDong-Gu, Seoul. Tel: +82-2-442-7585