
Il 21 gennaio 2021 alle 09:49 A. Mc. ha scritto:
I am new to Haskell and I need to find a way to count specific words in a file. File could contain spaces between words, no spacing, uppercase, lowercase, etc so I've standardized it to once the file is taken in, convert to lowercase and remove the spacing. I've also read the postings about using ByteString instead of [Char] so I am trying to use that. But, as it still seems to either view all elements as fused or each letter as individual, I'm not entirely sure how to tackle this. The input after transforming would be something like "theblueskyisveryblue" for uniformity and would need to count "the" and "blue". Feels like I should be able to do a map and foldr(?) but I'm not sure how to get Haskell to recognize 'the' for example and not count all the t's, h's, e's etc in the file, nor am I entirely sure how to properly compose a map-fold for character arrays like this.
Have you considered using `words`? λ> :t words words :: String -> [String] λ> words "Chiare, fresche e dolci acque" ["Chiare,","fresche","e","dolci","acque"]