Manuel M T Chakravarty wrote:
Joel Reymont:
I need to pick among the usual list of suspects for a commercial
product that I'm writing. The suspects are OCaml, Haskell and Lisp and
the product is a trading studio. My idea is to write something like
TradeStation [1] or NinjaTrader, only for the Mac.
It would be quite nifty to use SPJ's financial combinator approach
and, for example, embed Yi (Haskell editor).
One of the key features of the product would be the ability to model
your trading logic using a trading DSL. I'm thinking that this DSL
could well be Haskell but I'm concerned about stepping into a minefield.
[...]
I just can't see how laziness can help in processing real-time price data.
Laziness, in particular, and Haskell, in
general, is going to help you with the EDSL (it's no coincidence that
most EDSL work was done in Haskell).
Yes, you definitively want a host language with non-strict semantics for
EDSLs. For instance, custom control structures like
if' p a b = if p then a else b
when p m = if p then m else return ()
loose lots of their usefulness in a strict language. Same for parser
combinators, since you can't even define
many :: Parser a -> Parser [a]
many p = empty ||| (liftM2 (:) p (many p))
(Sooner or later, you probably want observable sharing for such
recursive values, but that's another story.)
In any case, the problem of choosing a host language and achieving good
user experience is probably negligible compared to the difficulty of
designing a powerful trading DSL in the first place :)
Regards,
apfelmus
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe