Re: [Haskell] evaluate function as a string
On Fri, Apr 23, 2004 at 03:32:54AM +0200, Sebastian Sylvan wrote: First you need to parse the expression into a Haskell data type. For this I would recommend Parsec (see Haskell.org). The Haskell data type would be something like data Expr = AtomD Double | AtomI Integer | Add Expr Expr | Mul Expr Expr | Sub Expr Expr | There is no need to introduce a datatype - for one parameter functions you can parse text directly to a (Double - Double) function. Of course if you want to do more things with your functions than just evaluation (like printing, symbolic differentiation), introducing a datatype is a good idea. Best regards, Tom -- .signature: Too many levels of symbolic links ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] evaluate function as a string
Tomasz Zielonka wrote: On Fri, Apr 23, 2004 at 03:32:54AM +0200, Sebastian Sylvan wrote: First you need to parse the expression into a Haskell data type. For this I would recommend Parsec (see Haskell.org). The Haskell data type would be something like data Expr = AtomD Double | AtomI Integer | Add Expr Expr | Mul Expr Expr | Sub Expr Expr | There is no need to introduce a datatype - for one parameter functions you can parse text directly to a (Double - Double) function. Of course if you want to do more things with your functions than just evaluation (like printing, symbolic differentiation), introducing a datatype is a good idea. The original poster used the term equation which to me indicated that he might have things like unknown variables in stuff. In other words: He would have to do some form of manipulation of the expression in order to get the result. /S -- Clothes make the man. Naked people have little or no influence on society. - Mark Twain ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] evaluate function as a string
Ay Joselito wrote: I want to develop an application in which the user enters a mathematical equation, presumably as a string (any arbitrary equation, using any of the standard mathematical operators : +,*,^, etc, and any of the standard functions: sin, exp, etc.). I need to take that string, convert it to a real function, and evaluate it. First you need to parse the expression into a Haskell data type. For this I would recommend Parsec (see Haskell.org). The Haskell data type would be something like data Expr = AtomD Double | AtomI Integer | Add Expr Expr | Mul Expr Expr | Sub Expr Expr | Then when you've parsed the expression you need to evaluate it. This should be fairly straightforward (pattern match against the constructors and perform the necessary operations recursively). Good luck. -- Clothes make the man. Naked people have little or no influence on society. - Mark Twain ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell