Hi, Rebols,

proposing a terminology. Example:

a: [1 2 3]
b: tail a
c: [1 2 3]
d: []

Everybody knows that there are differences between relations A <=> B and
C<=>D.
What about using the notion SAME-HEADED like this:

same-headed?: func [a [series!] b [series!]] [
    same? head a head b
]

Example:

same-headed? a b
same-headed? c d

>> same-headed? a b
== true
>> same-headed? c d
== false

Another proposed notion is SUBSERIES, which means:

subseries?: func [a [series!] b [series!]] [
    (same-headed? a b) and ((index? a) <= (index? b))
]

Advantages: you don't have to try to use any implementation-specific
guesses, just the natural Rebol notions when speaking about Rebol.

Ladislav

> Hi Joel
>
> Those were the words of [EMAIL PROTECTED]:
> <...>
> > For clarity of communication, and ease of learning by newcomers,
> > I'm simply proposing that:
> >
> > A) each language concept should have one unique name/term
> >    (although explanations and tutorials obviously will use a
> >     variety of descriptions)
> > B) each name/term should refer to one unique concept.
> >
> > I believe this somewhat purist approach is compatible with the
> > philosophy of a minimalist/elegant language such as REBOL.
>
> I agree here, but
>
> > In THEORY, a series is a data storage and a "current position"
> > within that storage.
>
> > In IMPLEMENTATION, a series has a REFERENCE to a sharable data storage
> > and has a private/nonshared "current position" within that storage.
> > Don't we agree that given:
> >
> >     a: next "123456"
> >     b: next a
> >
> > both 'a and 'b refer to the same string, but to different positions
> > within that string?  Isn't it valid to say that 'a and 'b are not the
> > same series, but that each is a series referring to the same string
> > (or whatever we want to call the data storage in this example)?
> > Isn't that less ambiguous than saying that they are the same series?
>
> I find it much easier to understand to call
> "123456" - the series, and
> 'a / 'b  - indexes into the series
>
> To me this seems to show better the difference between actions on
> the index ('next, ...) and on the series (insert, ...)
>
>
> Just my two cents
>
> regards,
>
> Ingo
>
> --  _     .                                _
> ingo@)|_ /|  _| _  <We ARE all ONE   www._|_o _   _ ._ _
> www./_|_) |o(_|(/_  We ARE all FREE> ingo@| |(_|o(_)| (_|
> http://www.2b1.de/Rebol/                     ._|      ._|
>
>

Reply via email to