
On Thu, Aug 13, 2020 at 01:02:19PM +0200, Alexander Chen wrote:
module Main where
allwords :: IO Int allwords = do dict <- readFile "data/dict.txt" return $ length [x | x <- dict , not $ '-' `elem` x] main :: IO Int main = do allwords
error
* Couldn't match expected type `t0 Char' with actual type `Char' * In the second argument of `elem', namely `x' In the second argument of `($)', namely '-' `elem` x In the expression: not $ '-' `elem` x
could someone tell me what I am doing wrong?
dict is of type String, since it's a String containing the complete file. That's why the type complaint is that you want to check if '-' (a Char) is an element of x, which is also a Char, which cannot work. I asssume what you want is a list of lines, which you can by applying the lines function, e.g. here: return $ length [x | x <- lines dict , not $ '-' `elem` x] HTH, Cheers, Alex