Thank you very much, that looks good. Laurent
On Tue, Aug 30, 2011 at 17:08, Sam Tobin-Hochstadt <sa...@ccs.neu.edu>wrote: > I think there are some purely functional data structures that you can > use here. Two examples: > > - Random Access Lists implemented in Hari Prashanth's Typed Purely > Functional Data Structures [1] > Some of the other data structures here, such as VLists, may also be > helpful. > > - David Van Horn's RAList package [2] > > [1] > http://planet.plt-scheme.org/package-source/krhari/pfds.plt/1/5/planet-docs/functional-data-structures/Random_Access_Lists.html > [2] > http://planet.racket-lang.org/display.ss?package=ralist.plt&owner=dvanhorn > > On Tue, Aug 30, 2011 at 3:18 AM, Laurent <laurent.ors...@gmail.com> wrote: > > Thank you very much for this nice intermediate solution, though I need > > constant-time append, split, insert, remove, + pointers to items, etc. > > Mutation does seem unavoidable, right. > > I started my own lib, but if something already exists, I'm still > interested. > > > > The purpose is to make a hash with bounded memory, with replacement of > > oldest items, or barely used items, or some other replacement criterion. > > > > The final purpose is to make a memoization form with bounded memory, or > > growing memory but with frequent removal of selected items. If I have > time > > to get there. > > > > I'll keep the zipper in mind for other purposes though! > > > > Laurent > > > > On Tue, Aug 30, 2011 at 08:35, Danny Yoo <d...@cs.wpi.edu> wrote: > >> > >> > Nothing obvious, no. But Racket is designed to encourage programming > >> > without > >> > mutation, and doubly linked lists require mutation. > >> > > >> > It's very likely a zipper will do what you want. A zipper is much > easier > >> > to > >> > implement than a doubly linked list, and has similar performance and > >> > uses. > >> > >> > >> To supplement, here are very old notes I wrote to myself on the kind > >> of list zipper that Neil is presenting: > >> > >> https://hkn.eecs.berkeley.edu/~dyoo/plt/zippers.txt > >> _________________________________________________ > >> For list-related administrative tasks: > >> http://lists.racket-lang.org/listinfo/users > > > > > > _________________________________________________ > > For list-related administrative tasks: > > http://lists.racket-lang.org/listinfo/users > > > > > > -- > sam th > sa...@ccs.neu.edu >
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users