所以,假设我有一个字符串,我想检查字符串的元素,无论它们是数字还是字符。每个数字都必须替换为数字1,每个数字必须替换为数字2,并且当您对所有数字求和时,必须显示最终结果。 示例:函数“123abc”必须给出结果9
我已经提出了使用列表推导和模式匹配的解决方案,但我需要能够在不使用它们的情况下提供解决方案,这意味着只有elem,head,tail,reverse,map,sum等。成为1个功能,现在有几个合并为一个。
答案 0 :(得分:6)
您可以执行以下操作;
import Data.Char (isDigit)
import Data.Bool (bool)
getsum :: String -> Int
getsum = sum . map (bool 2 1 . isDigit)
*Main> getsum "1234abc"
10