Haskell parse error on input ‘|’ when trying to compile -
hi i'm learning haskell , made code implemente fractions when compile error parse error on input ‘|’
code following:
module fraccion(frac,div,mcd,fraccion) data frac = div integer integer deriving (eq, show) mcd :: integer -> integer -> integer mcd b | > b = mcd (a-b) b | < b = mcd (b-a) | == b = fraccion :: integer -> integer -> frac fraccion b | b == 0 = error "divisor can't 0" | b < 0 = fraccion (-a) (-b) | b > 0 = div (a `div` mcdab) (b `div` mcdab) mcdab = mcd (abs a) b instance (num frac) negate (div b) = (div (-a) b) abs (div b) = (div (abs a) b) (div b) * (div c d) = fraccion (a*c) (b*d) (div b) + (div c d) = fraccion (a*d+b*c) (b*d) (div b) - (div c d) = fraccion (a*d-b*c) (b*d) frominteger n = (div n 1) signum (div b) | > 0 = 1 | < 0 + -1 | == b = 0 instance show frac show (div b) = (show a) ++ "/" ++ (show b)
could please me error?
on line 27:
| < 0 + -1
a simple typo. put +
meant =
| < 0 = -1
you'll want capitalize show
on second-to-last line. deriving
clause type shouldn't include show
either, because define instance explicitly rather deriving it. finally, module export list should this.
module fraccion(frac(div),mcd,fraccion)
Comments
Post a Comment