On 2014-09-27, 5:50 PM, Bill Richter wrote:
Thanks, Prabhakar, this is exactly what I wanted, and you know something about 
it (I was barely able to install Coq):

I struggled with installing it also, especially since I'm using a Mac. Racket has spoiled us in that respect.

    But parsing an expression written in faux OCaml/Haskell is quite
    complicated. [...] Parsing is much easier in Racket/Scheme because
    of the similarity of code/data and the presence of 'read'.

I think it's a parsing question I'm stuck on.  I think I need to use camlp to 
avoid the following hack/kludge which I learned from the HOL Light experts, 
found in my file
hol_light/RichterHilbertAxiomGeometry/readable.ml
which is part of the HOL Light distribution:

(* From update_database.ml: Execute any OCaml expression given as a string.  *)

I don't have enough practice in OCaml to grasp what your code does (and, yes, it is way off-topic), but I do know that about once every month or two, someone posts to this list about using 'eval' in Racket, and they are warned not to use it unless they really know what they are doing and have a suitable application (which is rare). That warning probably is doubled in a statically-typed language, in which 'eval' should not even be possible without subverting the type system (I gather this is what you are doing). Translating the gist of suggestions to such posters, I would say: do you really need to execute *any* expression? If not, use OCamllex and/or OCamlyacc (maybe Menhir, or a smaller and cleaner parser combinator library) to write a parser for your language subset, and then write an interpreter for the resulting ASTs. --PR
____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to