Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Associative data store Re:(5)

From: ryanc:iesco-dms at: 15-Sep-2000 11:18

That last little booger I posted didnt let you update values, and crashed when you asked it a stupid question. This updated version lets you update values, and returns none when you ask it about a key it has not encountered: assoc: make object! [ list: copy[] clear: func[][list: copy[]] set: func[key value][ if get key[unset key] append list key append/only list reduce[value] ] get: func[key] [ rv: none error? try [rv: first select list key] :rv ] unset: func [key][remove/part find list key 2] ] You still want to be careful when using block keys. [ryanc--iesco-dms--com] wrote:
> This little booger might be handy too. Though it has one peculiarity, dont use > blocks as keys when values might match the contents of the block key. > > assoc: make object! [ > list: copy [] > clear: func [] [list: copy []] > set: func [key value] [ append list key append/only list reduce [value]] > get: func [key /rv] [ first select list key ] > unset: func [key] [ remove/part find t key 2 ] > ] > > --Ryan > > Ryan Cole > Programmer Analyst > www.iesco-dms.com > 707-468-5400 > > The Tao that can be expressed > is not the eternal Tao. -Lao Tzu
--ya ya ya Ryan Cole Programmer Analyst www.iesco-dms.com 707-468-5400 The problem of language here are really serious. We wish to speak in some way about the structure of the atoms . . . But we cannot speak about atoms in ordinary language. -W. Heisenberg