Problem 22

http://projecteuler.net/index.php?section=problems&id=22

--Haskell (Input data from STDIN), 20090101

import Char (ord, isAlpha)
import List (sort)

split :: String -> [String]
split ['"'] = []
split xs    = let (f, t) = span isAlpha $ dropWhile (not . isAlpha) xs
              in f : split t

main = getLine >>= print . sum . zipWith (*) [1..] . map (sum . map (subtract 64 . ord)) . sort . split