
Hello Joel, Tuesday, December 06, 2005, 5:12:55 PM, you wrote:
using "Dynamic" have meaning only if you don't know at compile time what messsages can be sent. is that really the case?
JR> That is correct. I deliver a "scripting library" and users can create JR> messages of their own. creators of Data.List library also don't know about all your types, but nevertheless you are use all theirs functions ;) if set of messages is defined at compile time, then it's just: data Event a = Quit | .... | User a user of your library defines additional set of messages with data UserEvent = Beer Int | Cola | ... and use smthg like do chan <- newChan sendChan chan (User $ Beer 5) sendChan chan Quit it seems like magic but Haskell will guess what `chan` have type "Chan (Event UserEvent)" here :)
imho, you are think in Erlang style, which is ultimately dynamic and run-time oriented.
JR> I think in the style most suitable to my task at hand. I have a variable JR> number of poker clients that talk to the server. These all run JR> concurrently JR> so I'm starting threads for them. They can send/receive messages, so JR> I added JR> mailboxes to the threads, etc. Is there anything wrong with this JR> approach? hm, may be that you are mixing interfaces and implementation details. for example, poker client in my taste must be a record which supports all operations on this client via its fields, which is just an actions which accepts/returns some values in general, your questions contain too few details about your problems and too much details about solutions you are assume -- Best regards, Bulat mailto:bulatz@HotPOP.com