Alex Rivera | Logout

How can evaluate an expression stored as a string in F#

Asked 2008-12-16T17:32:53.447
13

I want to do something sort of like this:

let x = 5
let y = 10

let expr = Console.ReadLine()

expr

Where one might type "x+y" in the console to store in expr.

How does one evaluate a statement like this in F#?

Ultimately, I want a user to be able to enter expressions, or a set of rules for a system, on a webpage and have them saved in a database to be applied at appropriate times in an F# library. I just don't know how to convert the entered string in to a function value in F#.

Thanks for any help you may provide!

Adam

Edit
Report

1 Answer

2

F# doesn't have eval, as mentioned, but if you can define the grammar, you can utilize the Lex and Yacc implementations in F# (fslex and and fsyacc).

EDIT:

As a quick follow up, I know in ocaml you can exploit the interactive console to your users with ocamlmktop. I am unsure of an equivalent in F#. This, although, doesn't seem to match what you want with a web interface (correct?).

answered 2008-12-16T17:48:45.257

Your Answer