Interesting comments Anton, however, I can't see how any of this could work...

data/:(n: 150 'n)

Here you have a Get-Paren.  What's a Get-Paren? Parens are
automatically evaluated....

data/(index + 2)

The equivelant to that would be...

pick data index + 2

since index wasn't given a value then it would throw an error.

Here's how I see this new path notation being used...

data: [Bob Hope "1234 Hope St."]
firstname: 1
lastname: 2
address: 3
data/:firstname: 'John
data/:lastname: 'Doe
data/:address: "4321 Doe St."

It is mostly to obtain a little more clarity in your code.  Compare
the above with this...

data: [Bob Hope "1234 Hope St."]
data/1: 'John
data/2: 'Doe
data/3: "4321 Doe St."

The ability to use a Get-Set-Word in a path was actually one of my
first feature requests when I started using REBOL, as was the ability
to put a paren in the path.  Now that is one really powerful feature.
;-)  Simple examples simply don't show how much clarity these features
can provide in your code.  Start doing some extensive block work with
it and I think that you will be amazed at how clear your code is...

HTH
~~Ammon ;~>


On Thu, 21 Oct 2004 16:38:57 +1000, Anton Rolls <[EMAIL PROTECTED]> wrote:
> 
> Well, I agree it is a bit ambiguous,
> but if you think that rebol operates
> left to right, then you can see that
> the get-word :n happens before the set-word n:
> 
> The second possible meaning:
> I imagine if it was wanted that way, you could
> be able to write:
> 
>         data/:(n: 150 'n)
> 
> or
> 
>         data/(150)
> 
> since you already know the value of n
> or know how to calculate n.
> I don't see it's very useful to set 'n just to
> be used as a temporary value in a path.
> 
> However, it got me thinking...
> Perhaps temporary variables could be used further down
> the path. ie.
> 
>         data/(n: 150)/(n + 1)
> 
> is equivalent to:
> 
>         data/150/151
> 
> Another idea is perhaps if data is a block which contains
> a name/value pair, then you could access 'name inside the
> parens. eg:
> 
>         data: [index 3 a b c d e]
>         data/(index + 2)
>         ;== c
> 
> or
> 
>         data: [header 4 index 3 a b c d e]
>         data/(header + index)
>         ;== c
> 
> Just some ideas.
> 
> Anton.
> 
> 
> 
> > Hi, list,
> >
> > About http://www.rebol.net/blog/carl.html#section-5
> >
> > Here's Carl's exemple:
> > data: [10 20 30]
> > n: 3
> >
> > This shorthand for accessing elements in blocks is added to rebol version=
> >  2.5.55:
> > data/:n: 150
> >
> > But then: is it absolutely clear that this should mean
> > poke data n 150
> >
> > Couldn't it just as well mean:
> > n: 150
> > pick data n
> >
> > i.e. with the form=20
> > :n:
> > which should be evaluated first, :n or n: ?
> >
> > This might be a dumb question, but I don't see that this is all
> > that clear.=
> >  Elucidate me!
> >
> > A copy of this email is sent via http://www.rebol.com/contacts.html.
> >
> > HY
> 
> --
> To unsubscribe from the list, just send an email to rebol-request
> at rebol.com with unsubscribe as the subject.
> 
> 


-- 
Enjoy!!
~~Ammon ;~[)
~Sui  Generis~
-- 
To unsubscribe from the list, just send an email to rebol-request
at rebol.com with unsubscribe as the subject.

Reply via email to