digitSum n = let { q = div n 10 ; r = mod n 10 } in if q == 0 then r else r + digitSum q printf f x = putStrLn $ show x ++ " -> " ++ show (f x) main = mapM_ (printf digitSum) [123, 456, 789]