Hey Alexander,

dict has type String. Therefore, x is of type Char, but elem '-' is of type [Char] -> Bool (simplified). Hence, you get a type mismatch. If you just want to count every character except '-', then you could just you '-' /= x.

Cheers

Tobias

On 8/13/20 1:02 PM, Alexander Chen wrote:
Hi,

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?

thanks!

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners