[Haskell-beginners] Count Words from File

Francesco Ariis fa-ml at ariis.it
Thu Jan 21 17:53:12 UTC 2021


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"]



More information about the Beginners mailing list