#### Question :

I wrote a haskell script to find the odd numbers in a list and show them on the screen, but I get an error when it comes to displaying the results.

```
impares[] =[]
impares(x:xs)
|(mod(x 2)==0) = impares xs
|otherwise = x:(impares xs)
```

The error is as follows:

```
no instance for (show (a10 -> a0)) arising from a use of 'print'
```

Apparently there is nothing wrong with my code, but I can not execute this program! Can someone give a light?

#### Answer :

The error is in the way you use the `mod`

operator. Change the definition of your function to

```
impares [] = []
impares (x:xs)
| x 'mod' 2 == 0 = impares xs
| otherwise = x:(impares xs)
```

Or if you want to use the prefix notation you can write like this:

```
impares [] = []
impares (x:xs)
| mod x 2 == 0 = impares xs
| otherwise = x:(impares xs)
```

This function could still be defined using only functions of the Prelude module. An alternative would be:

```
impares = filter odd
```