[EMAIL PROTECTED] wrote:

> For example, path traversal and series searching are inherently
> open-ended.  I'd expect multiple levels to be allowed by the notation,
> since the underlying data may be multiple levels deep.  The tricky bit
> is that an expression such as
>
>     pooh/bah/yow/ick
>
> (where pooh is a path or [nested] series) sort of leaves the impression
> that / is an INFIX OPERATOR whose right-hand operand is applied to the
> EXPRESSION on the left.  Thus one could read the above as if it were
>
>     ((pooh APPLY bah) APPLY yow) APPLY ick
>
> That is reasonable for the use of paths as directories, where one could
> interpret the expression as
>
>     ((pooh CD bah) CD yow) CD ick
>
> or for the use of nested series(es(es(es(es...))) ;-), where one could
> interpret the expression as
>
>     ((pooh SELECT bah) SELECT yow) SELECT ick
>
> However, this all breaks down with functional options, because
>
>     function-name/refinement-1 ...
>

As you said it correctly, function refinements are OPTIONS to functions,
and that's why I think you are right here. As for series or directory
structure traversing, it makes sense, as the path means we are nesting
somewhere. The first thing which was a little bit difficult (or confusing)
for me, was several refinements used in combination for one function call.
Which one to place first and how to place arguments in a proper way? Just
look at 'open function for example.

The question is - how to do anything about it syntaktically, how to
distinguish the two cases? There is not easy answer to it. We are too far
away to make some big change, as many scripts is already out. What we (or
better REBOL Tech.) can do about it, is to introduce new syntaktical forms.
But how? :-))

system/words/open/direct/new  - the current state ...

possible solutions?

system/words/open//direct/new
system/words/open|direct new|
system/words/open/|direct, new|
system/words/open/|direct new|
system/words/open/[/direct /new]
proposed system/words/open:/direct/new doesn't look so bad

... hmm, I've thought it's not so easy to come up with some REBOL-like,
easy to read syntax :-)

As for refinements promotion, I don't agree with it's usefullness. If you
are designing a function and you know you will incorporate some other
function, and it would be usefull to decide how to use it, it's up to you
as a designer, to promote such refinement up one level, and decide there.
Time for someone to prove me being wrong? ;-) ... eh, all I wanted to say
was - it's not so important topic imho ...

And what's the biggest problem? Our discussion, using right or wrong
arguments, never attracted anyone from REBOL Tech. to comment? :-)

Regards,

-pekr-

PS: ah, as usually - I am no language guru, so if I am missing the point of
discussion here, sorry for messing things up :-)

> Thanks!
>
> -jn-

Reply via email to