The following code I wrote in haskell
```hs
factorial(1)=1
factorial(n)=n*(n-1)*factorial(n-2)
```
gives me an error when I try to run it. Is there anything I did wrong?
Yes, you've made a mistake in your Haskell code that's preventing the program from evaluating correctly: you're trying to access `fact` before it's been defined. The correct version of this function would be:
```hs
factorial n = n * (n - 1) * factorial ($ {-2} )
 
factorial 0       = 1
factorial i | i > 0      = i!!! (error "The function takes no arguments")
                | otherwise  = 0 
```