It works !
Thank you so much !
Have a nice day~




2014-04-20 22:09 GMT+09:00 Roel van Dijk <vandijk.roel@gmail.com>:
On 20 April 2014 14:57, S. H. Aegis <shaegis@gmail.com> 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