haskell - 使用递归在 haskell 中编写一个函数来确定字符列表中有多少位数字

标签 haskell

我需要使用递归来计算字符列表中有多少位数字,因此对于这个列表['a','b','c','1','2','3' ] 答案应该是 3

我已经设法使用此代码来做到这一点,但我很难使用递归来做到这一点

counta :: [Char] -> Int 
counta = length . filter isDigit

示例:

Main> counta ['a','b','c','1','2','3']

答案应该是:3

最佳答案

与列表上的任何递归函数一样,首先处理头部并递归尾部。

counta :: [Char] -> Int
counta [] = _
counta (x:xs) = let this = _  -- something involving x
                    that = counta xs
                in _ -- something involving this and that

如果您尝试编译它,编译器将准确告知每个 _ 应该是什么类型,这将帮助您将它们替换为正确的表达式。

关于haskell - 使用递归在 haskell 中编写一个函数来确定字符列表中有多少位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58719668/

相关文章:

haskell - 如何告诉 Haskell 不要从两个模块导入同一个实例?

haskell - 如何将 Haskell Stack 与 Docker Compose 结合使用?

haskell - Haskell 的严格点是什么?

haskell - Pipes-2.1.0 包中的最终确定

haskell - 如何使用 aeson-schema 包?

haskell - cabal install MissingPy 找不到 Data.HashTable

haskell - 对多个 'Main' 进行类型检查

haskell - 如何在 Haskell 中使用 foldr 实现删除

c - 如何在 ST monad 中执行 FFI 调用

Haskell 函数中的非详尽模式