RE: TChan implementation: Why TVarList

The mutable cell is in the tail. A [TVar a] would be quite different. You can read about a very similar impl (based on MVars) in the original "Concurrent Haskell" paper (on my papers page) S | -----Original Message----- | From: Joel Reymont [mailto:joelr1@gmail.com] | Sent: 06 December 2005 11:28 | To: Simon Peyton-Jones | Cc: Haskell Cafe | Subject: TChan implementation: Why TVarList | | Simon, | | Why did you guys implement TChan on top of your own TVarList instead | of a regular list? | | -- | 'TChan' is an abstract type representing an unbounded FIFO channel. | data TChan a = TChan (TVar (TVarList a)) (TVar (TVarList a)) | | type TVarList a = TVar (TList a) | data TList a = TNil | TCons a (TVarList a) | | Thanks, Joel | | -- | http://wagerlabs.com/ | | | |

Well, I meant more like TVar [a] but I see that you are pulling from the front and appending to the rear. I need to implement a mailbox where messages can be pulled out based on a predicate or in order of arrival. I'm thinking of using a Map keyed on ClockTime. Do you have any suggestions? Thanks, Joel On Dec 6, 2005, at 11:31 AM, Simon Peyton-Jones wrote:
The mutable cell is in the tail. A [TVar a] would be quite different. You can read about a very similar impl (based on MVars) in the original "Concurrent Haskell" paper (on my papers page)

Hello Joel, Tuesday, December 06, 2005, 2:46:24 PM, you wrote: JR> I need to implement a mailbox where messages can be pulled out based JR> on a predicate or in order of arrival. I'm thinking of using a Map JR> keyed on ClockTime. JR> Do you have any suggestions? it depends. what is the usage scenario? -- Best regards, Bulat mailto:bulatz@HotPOP.com
participants (3)
-
Bulat Ziganshin
-
Joel Reymont
-
Simon Peyton-Jones