ghc command line evaluation
Benjamin Franksen
benjamin.franksen at bessy.de
Wed Apr 5 15:39:21 EDT 2006
On Wednesday 05 April 2006 20:32, Pedro Miguel Duarte wrote:
> I am writing a Java program with a call to a Haskell module M.hs,
> in order to evaluate some expression expr.
>
> A very simple idea, which I got somewhere in the net, is to create a
> Process object p which executes a GHC command-line instruction:
>
> Process p = Runtime.getRuntime();
> p.exec( " ghc M.hs -e \"expr\" " );
>
>
> This would be very simple, if it worked...
>
>
> My problem is that expressions i want to evaluate involve
> strings, and GHC command-line 'ghc' misinterprets some special
> symbols when it parses double quoted strings.
>
> For instance,
> ghc -e " reverse \"2<3\" " gives an error!
Hmm. On my Linux machine (running zsh):
ben at sarun: .../play/ghc-e > ghc -e " reverse \"2<3\" "
"3<2"
But now I see that you run 'p.exec' in Java which probably translates
(more or less) to a 'exec' system call. 'exec' is not a shell, it
cannot translate complex quotings and unquotings. I would try
p.exec( "/bin/sh ghc M.hs -e \"expr\" " );
or something similar.
Ben
More information about the Glasgow-haskell-users
mailing list