Je travaille sur un problème assez simple dans haskell. J'essayais de compter le nombre de minuscules dans une chaîne. Ma solution est cePourquoi est-ce une conversion eta invalide?
import Data.Char
lowercaseCount :: String -> Int
lowercaseCount x = length $ filter isLower x
que je cherchais à la mise en œuvre effective de lowercaseCount
et vu qu'il semblait qu'elle aurait pu sous-aller d'une réduction de eta. J'ai essayé
lowercaseCount = length $ filter isLower
mais GHC m'a crié dessus en disant
pourrait ne pas correspondre prévu le type
[Char] -> Int
avec le type réelInt
Je me demandais pourquoi cette réduction êta est illégale, et s'il y avait un moyen de rendre cette fonction capable d'être sous une forme eta-réduite.
Mon Haskell est assez rouillé, mais votre deuxième version n'a-t-elle pas besoin d'utiliser la fonction de composition ('.') au lieu de l'application (' $ ')? Le filtre sera une fonction car il n'est pas complètement appliqué. – Carcigenicate
@Carcigenicate Yep. C'était ça. Je suis embarrassé. Désolé pour ça. –