以下について教えてあげよう

東方算程譚 - 以下について教えてあげよう♪


Haskellでやってみた。

import Char

main = print $ problem "Abc012_59F_#012Gh"

problem :: String -> String
problem = proc . break (== '#')

proc :: (String, String) -> String
proc (s, ss) = (map (toLower . reverseDigit) s) ++ ss

reverseDigit :: Char -> Char
reverseDigit c
    | isDigit c = (intToDigit . (9-) . digitToInt) c
    | otherwise = c
abc987_40f_#012Gh

関数名てきとーでごめんなさい。
もっときれいに書けそう。