Haskell操纵列表的元素

时间:2017-09-22 13:23:12

标签: list haskell

所以,假设我有一个字符串,我想检查字符串的元素,无论它们是数字还是字符。每个数字都必须替换为数字1,每个数字必须替换为数字2,并且当您对所有数字求和时,必须显示最终结果。 示例:函数“123abc”必须给出结果9

我已经提出了使用列表推导和模式匹配的解决方案,但我需要能够在不使用它们的情况下提供解决方案,这意味着只有elem,head,tail,reverse,map,sum等。成为1个功能,现在有几个合并为一个。

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