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

[REBOL] Re: Embedded objects.

From: sunandadh:aol at: 13-Mar-2003 4:44

> Terry: > > Sunanda has the solution, but thinking there must be a more graceful > > approach? Perhaps not.
Joel:
> Hmmmm... But Sunanda's explicit proviso points out a severe > limitation of this approach
I'm with Joel on this. Unless you are absolutely certain that an object won't be referenced in more than one place, then techniques that replace it with another identically named object are dicey. Take this example. Bob is a person so we save him in the People block. Later (after we've replaced Bob with the new Bob) we check what's in the People block. It's the old Bob! Look: no dog!! Hey, we could make that into a stage magic trick) BobsDog: make object! [name: "Rex"] Bob: make object! [name: "Bob"] people: copy [] append people Bob probe people/1 ;; check it's Bob alone in there Bob: make Bob reduce [to-set-word 'BobsDog BobsDog] probe bob ;; show Bob has a dog probe people/1 ;; Bob without a dog! append People Bob ;; now there's two Bobs in the block sort People ;; etc -- play around with the block and see how confusing it cold get The two techniques better than mine suggested so far are: 1. Joel's that you plan ahead and have a block in the Object that takes all later additions 2. Andrew's that you use a block instead of an object. Sunanda.