Ok, thank you! I will read something more about bind and context. I saved your short tutorial in my PC just for reference for the future! := -)
(I will include these controls in my Jell Project). --Alessandro On 5/7/06, Pierre Johnson <[EMAIL PROTECTED]> wrote: > > I wrote: > > Your example fails because 'a/q2 is a path! not a word! > > Which, while true, is not the correct explanation as to why your > example fails > > Again, your example: > a: make object! [ q1: 100] > value? 'a/q2 > > >> ; failed example > >> a: make object! [ q1: 100] > >> value? 'a/q2 > =3D=3D true > > >> ; first, comprehend value? > >> source value? > value?: native [ > "Returns TRUE if the word has been set." > value > ] > > Your example fails because value? returns true on the value > 'a/q2 being set in the global context of REBOL, not in the > context of any object > > A quick check reveals that REBOL will return true for value? > query on any ticked phrase you give it. Why? because each tick > phrase typed at the console is a value in the global context!, > e.g., > > >> value? 'z/y/x/w/v/u > =3D=3D true > > >> value? 'another/typed/value/in/the/global/context/of/REBOL > =3D=3D true > > >> ; REBOL truth > >> word? 'a/q2 > =3D=3D false > > >> path? 'a/q2 > =3D=3D true > > The rest of my explanation holds: > > The definitional of any object is just a block. Think of the > outer [] as "invisible". > > >> probe a > make object! [ > q1: 100 > ] > > >> first a > =3D=3D [self q1] > >> type? first a > =3D=3D block! > > >> second a > =3D=3D [make object! [ > q1: 100 > ] 100] > >> type? second a > =3D=3D block! > > Let's use 'a as a prototype for 'b > > >> b: make a [ > [ q2: "some aspect" > [ ] > > >> probe b > make object! [ > q1: 100 > q2: "another aspect" > ] > > Let's define debate (my word for func) to discover the aspects > of any object > > aspects: debate [ > internals [object!] > ][ > probe next first internals > ] > > >> aspects: debate [ > [ internals [object!] > [ ][ > [ probe next first internals > [ ] > > >> aspects b > [q1 q2] > =3D=3D [q1 q2] > >> type? aspects b > [q1 q2] > =3D=3D block! > > now, we can 'find on the aspects of any object > > >> find aspects a 'q1 > [q1] > =3D=3D [q1] > >> find aspects a 'q2 > [q1] > =3D=3D none > >> find aspects b 'q2 > [q1 q2] > =3D=3D [q2] > > You could parse if you had expectation of an existing layout of > object words (internals), e.g., > > If you expect your object to look like > > b: context [ > q1: 100 > q2: "some aspect" > ] > > then you can use parse, e.g., > > >> internals: ['q1 'q2] > =3D=3D ['q1 'q2] > >> parse aspects b internals > [q1 q2] > =3D=3D true > > >> new-internals: ['q1 'q2 'q3] > =3D=3D ['q1 'q2 'q3] > >> parse aspects b new-internals > [q1 q2] > =3D=3D false > > Here are two great works that can help you comprehend what's > going on inside REBOL: > > http://www.fm.vslib.cz/~ladislav/rebol/contexts.html > http://www.pat665.free.fr/doc/bind.html > > Also, you can check out my work, which is alternative way of > looking at REBOL (non-computer science, non-High Priests of > Academia way) at http://rebolese.blogspot.com > > > Pier Johnson > Thousand Oaks, CA, USA > > > > ________________________________________________ > Get your own "800" number > Voicemail, fax, email, and a lot more > http://www.ureach.com/reg/tag > -- > To unsubscribe from the list, just send an email to > lists at rebol.com with unsubscribe as the subject. > > -- To unsubscribe from the list, just send an email to lists at rebol.com with unsubscribe as the subject.
