[Haskell-cafe] What's a thread doing / Erlang-style processes
/ Message passing
bulatz at HotPOP.com
Tue Dec 6 11:07:16 EST 2005
Tuesday, December 06, 2005, 5:12:55 PM, you wrote:
>> using "Dynamic" have meaning only if you don't know at compile time
>> 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> 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
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
Bulat mailto:bulatz at HotPOP.com
More information about the Haskell-Cafe