
On Tue, 19 Jul 2005, robert dockins wrote: [ ... re explicit "entire program state" record passing ... ]
Fair enough. The main reason I suggested it is a fairly painless way to emulate global variables within a main control loop, which was the OPs stated goal. ("it's important to implement it in as most imperative form as possible...")
I would personally attempt to adopt a more functional way of approaching the problem (Arrows and whatnot), but those are still pretty murky waters.
Bummer. It's as simple and obvious as it could be in O'Haskell, which as I understand it basically packages up your record of IORefs, in its reactive object. The I/O event driven execution model seems meant for problems like this, too. I hope if the links people ever spawn a new FP language and it's anything like Haskell, they'll take an approach somewhat like this and leave the Haskell world fumbling around with its Arrows and whatnot. But, to try to answer the recent question about O'Haskell, I wouldn't expect it to serve very well as a bridge to OO languages. There are some OO elements, but for example if you read to the bottom of http://www.cs.chalmers.se/~nordland/ohaskell/survey.html, there are also some significant omissions. For example, he doesn't use this phrase, but I think there's no "open recursion". I can't imagine using this language's OO features in a C++ toolkit wrapper. But I never tried it, and it might be an interesting demonstration project. Donn Cave, donn@drizzle.com