[Haskell-cafe] Question about data
miguelimo38 at yandex.ru
Fri Aug 19 23:51:34 CEST 2011
Your MathExpression data type has nothing to do with numbers of any kind. Your "Float" data constructor doesn't mean that float numbers are a part of your type; instead it means that you have a SINGLE value of type MathExpression, and this value is named "Float".
You should modify your data declaration as "data MathExpression = Float Float | …", and after that you can write something like "a = Float 4.2", which would automatically make "a" a value of type MathExpession".
Отправлено с iPad
20.08.2011, в 0:40, Paul Reiners <paul.reiners at gmail.com> написал(а):
> I've created a simple type declaration:
> data MathExpression = Float
> | Add MathExpression MathExpression
> | Subtract MathExpression MathExpression
> | Multiply MathExpression MathExpression
> | Divide MathExpression MathExpression
> deriving (Show)
> Now how do I create an instance of MathExpression which is just a Float?
> This doesn't work:
> *Main> let pi = 3.14 :: MathExpression
> No instance for (Fractional MathExpression)
> arising from the literal `3.14'
> Possible fix:
> add an instance declaration for (Fractional MathExpression)
> In the expression: 3.14 :: MathExpression
> In an equation for `pi': pi = 3.14 :: MathExpression
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe