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

[REBOL] Re: Embedded objects - deviation

From: lmecir:mbox:vol:cz at: 13-Mar-2003 11:09

Hi, you can even use: dynamic: function [ {make a dynamic object} spec [block!] /inherit object [object!] ] [result] [ result: make object! [data: none] result/data: make either inherit [object/data] [object!] spec result ] add-data: func [ {add data to a dynamic object} dynamic [object!] spec [block!] ] [ dynamic/data: make dynamic/data spec dynamic ] dp: function [ path [path!] ] [path2] [ path2: make path! (2 * length? :path) + 2 foreach word path [ insert insert tail :path2 word 'data ] remove back tail :path2 :path2 ] dyn: func [ code [block!] ] [ code: copy code change/only code dp first code do code ] ; tests Bob: dynamic [name: "Bob"] BobsDog: dynamic [name: "Rex"] SuzyCat: dynamic [name: "Suzy"] dyn [Bob/name] ; == "Bob" dyn [BobsDog/name] ; == "Rex" dyn [SuzyCat/name] ; == "Suzy" add-data Bob [BobsDog: rebol/words/BobsDog] dyn [Bob/BobsDog/name] ; == "Rex" add-data BobsDog [SuzyCat: rebol/words/SuzyCat] dyn [BobsDog/SuzyCat/name] ; == "Suzy" dyn [Bob/BobsDog/SuzyCat/name] ; == "Suzy" and there are other variants of the wording you can use Regards -L