
Hi, The faulty expression is this one: ((number `mod` 10 ): acc) (toDigits' (number `mod` 10)) The first expression: ((number `mod` 10 ): acc) is a list. You concatenate a number to acc. Therefore what you are doing is calling a list with an argument: (toDigits' (number `mod` 10)). That's what the error says. The first expression is called with one argument, but its is a list ([a0]), which is not a function, therefore can not be called. I think you meant something like: toDigits' acc number = toDigits' ((number `mod` 10 ): acc) (number `div` 10) Best, Greg On 23.05.2015 08:58, Roelof Wobben wrote:
Hello,
For some reasons my file's are corrupted. I had repair them with success except this one.
Here is the code :
toDigits number | number <= 0 = [] | otherwise = toDigits' [] number where toDigits' acc 0 = acc toDigits' acc number = ((number `mod` 10 ): acc) (toDigits' (number `mod` 10))
main = print $ toDigits 123
and here is the error:
Couldn't match expected type `(a0 -> [a0]) -> [a0]' with actual type `[a0]' The function `(number `mod` 10) : acc' is applied to one argument, but its type `[a0]' has none In the expression: ((number `mod` 10) : acc) (toDigits' (number `mod` 10)) In an equation for toDigits': toDigits' acc number = ((number `mod` 10) : acc) (toDigits' (number `mod` 10))
Roelof
--- Dit e-mailbericht is gecontroleerd op virussen met Avast antivirussoftware. http://www.avast.com
_______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners