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

[REBOL] Associative data store Re:(2)

From: al:bri:xtra at: 15-Sep-2000 22:39

This is a multi-part message in MIME format. ------=_NextPart_000_069A_01C01F65.D37B3940 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit I wrote:
> I don't like 'Encapsulate. Any one know of a better way to do it?
I blame the drugs I'm not taking... Value: reduce [Value] is a far better way of doing it. [ Rebol [ Title: "Associate" Name: 'Associate File: %Associate.r Author: "Andrew Martin" Email: [Al--Bri--xtra--co--nz] Date: 15/September/2000 ] Associate: function [Block [block!] Key Value] [Index] [ Value: reduce [Value] either found? Index: find Block Key [ change/only next Index Value ][ append Block reduce [Key Value] ] Block ] Deassociate: function [Block [block!] Key] [Index] [ if found? Index: find Block Key [ remove/part Index 2 ] Block ] Associated?: function [Block [block!] Key] [Value] [ Value: select Block Key either none? Value [none] [first Value] ] ]
>> do %associate.r >> block: []
== []
>> Associate block 1 "The test is this"
== [1 ["The test is this"]]
>> Associate block 2 [1 2 3]
== [1 ["The test is this"] 2 [[1 2 3]]]
>> associated? block 1
== "The test is this"
>> associated? block 2
== [1 2 3]
>> block/2
== ["The test is this"]
>> Associate block 'antidisestablishmentarianism [1 "is a long word!" 3]
== [1 ["The test is this"] 2 [[1 2 3]] antidisestablishmentarianism [[1 "is a long word!" 3]]]
>> Associate block 'anti [3 2 1]
== [1 ["The test is this"] 2 [[1 2 3]] antidisestablishmentarianism [[1 "is a long word!" 3]] anti [[3 2 1]]]
>> block/anti
== [[3 2 1]]
>> first block/anti
== [3 2 1]
>> deassociate block 2
== [1 ["The test is this"] antidisestablishmentarianism [[1 "is a long word!" 3]] anti [[3 2 1]]]
>> deassociate block 1
== [antidisestablishmentarianism [[1 "is a long word!" 3]] anti [[3 2 1]]]
>> clear block
== [] Andrew Martin ICQ: 26227169 http://members.ncbi.com/AndrewMartin/ http://members.xoom.com/AndrewMartin/ -><- ------=_NextPart_000_069A_01C01F65.D37B3940 Content-Type: text/x-rebol; name="Associate.r" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Associate.r" [ Rebol [ Title: "Associate" Name: 'Associate File: %Associate.r Author: "Andrew Martin" Email: [Al--Bri--xtra--co--nz] Date: 15/September/2000 ] Associate: function [Block [block!] Key Value] [Index] [ Value: reduce [Value] either found? Index: find Block Key [ change/only next Index Value ][ append Block reduce [Key Value] ] Block ] Deassociate: function [Block [block!] Key] [Index] [ if found? Index: find Block Key [ remove/part Index 2 ] Block ] Associated?: function [Block [block!] Key] [Value] [ Value: select Block Key either none? Value [none] [first Value] ] ] ------=_NextPart_000_069A_01C01F65.D37B3940--