Fare I will study the AVL implementation and begin work bringing WB and RB into conformance as soon as power returns (I'm still sitting in the dark over here; thank heavens for smartphones) I've been doing a similar type of thing with pure and stateful, only using dynamically scoped functions and contextl. IPS seems to accomplish the same goal but in a way that improves on this approach in a number of ways, not the least if which is being more clear and evident to the reader. <div>
<br></div><div>In fact DrewC may appreciate I'd been using his CSTM as a means of implementing the "box" of the root container in my "stateful" type. <br><br>Ctries are very different from binary trees of course but also very easy to implement pure and stateful by virtue of the capability for O(1) "Atomic Fork" operation which produces a (still mutable) structure that is independently readable and writable at a small cost to the next few subsequent lookup operations in both the original and clone Ctries. <span></span></div>
<div><br></div><div>No doubt the ctrie is kind of an "odd duck" but also present some opportunity for harnessing different types of behaviors more difficult with other structures </div><div><br></div><div>Very happy to be participating in this effort,</div>
<div>Dan</div><div><br>On Monday, October 29, 2012, Faré wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tue, Oct 30, 2012 at 5:50 AM, Dan Lentz <<a href="javascript:;" onclick="_e(event, 'cvml', 'danlentz@gmail.com')">danlentz@gmail.com</a>> wrote:<br>
> I've got ctries, redblack trees, and weight-balanced trees I've been<br>
> thinking about trying to integrate with/into LIL. I would be proud if<br>
> any/all of it were to be rolled into the LIL project proper.<br>
><br>
Yes. we already have AVL trees, so redblack and weight-balanced<br>
should be easiest to integrate in the current framework.<br>
Could you write both the pure and stateful variants?<br>
<br>
I have some vague ideas on how both pure and stateful data structures<br>
could be deduced from a single specification using IPS (at compile-time?)<br>
to distinguish between the two variants. Something like:<br>
(update-node! <pure?> node :left l :right r)<br>
Would expand either to in-place modification of the node (stateful case),<br>
or creation of a new node (pure case).<br>
But I haven't tried anything like that yet, so please disregard<br>
unless you're interested in experimenting yourself.<br>
<br>
> Regarding non-concurrent structures with concurrent interface -- I'm<br>
> probably not the most qualified to answer but if you we're to ask me I<br>
> think that new futures library by deliciousrobot looks interesting.<br>
> It implements cooperative multitasking based on green threads built<br>
> using cl-cont.<br>
><br>
I remember doing green threads on top of arnesi, in philip-jose.<br>
It was great. I should definitely contact deliciousrobot at some point<br>
and send him my code in case he's missing anything, so we can declare<br>
philip-jose dead and consolidate.<br>
<br>
> My access to email is sporadic over the next day or so. Everyone here<br>
> in South Jersey is hunkered down in anticipation of the hurricane.<br>
><br>
No problem. Take your time, and be safe!<br>
<br>
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• <a href="http://fare.tunes.org" target="_blank">http://fare.tunes.org</a><br>
Success is getting what you want. Happiness is wanting what you get.<br>
— Dale Carnegie<br>
</blockquote></div>