【发布时间】:2026-02-13 00:15:01
【问题描述】:
我正在研究 Haskell 中的一个非常基本的问题。我试图计算字符串中小写字母的数量。我的解决方案是这样的
import Data.Char
lowercaseCount :: String -> Int
lowercaseCount x = length $ filter isLower x
我正在查看lowercaseCount 的实际实现,发现它似乎应该能够进行 eta 减少。我试过这个
lowercaseCount = length $ filter isLower
但是 GHC 对我大喊大叫
无法匹配预期类型
[Char] -> Int与实际类型Int
我想知道为什么这个 eta 减少是非法的,以及是否有办法使这个函数能够成为一个 eta 减少的形式。
【问题讨论】:
-
@Carcigenicate 是的。就是这样。我很尴尬。对此感到抱歉。