Encouraged by Jeff's explanation of why there's utility in Forall
leaving the target block modified, let me ask about another case
that seems inconsistent to me.

The RCUG description of paths seems to me to say that a numeric
path component is equivalent to Pick and a non-numeric component
is equivalent to Select.

It also says that None is the value that signifies "nobody home".

Assuming that these are correct readings...

    >> stuff: [1 2 3 4]                   == [1 2 3 4]
    >> pick stuff 3                       == 3
    >> stuff/3                            == 3

    ; as expected

    >> pick stuff 5                       == none
    >> stuff/5                            == none

    ; as expected

    >> nonsense: [a 4 b 3 c 2 d 1 f 0]    == [a 4 b 3 c 2 d 1 f 0]
    >> pick nonsense 3                    == b
    >> nonsense/3                         == b
    >> pick nonsense 12                   == none
    >> nonsense/12                        == none

    ; so far so good

    >> select nonsense 'b                 == 3
    >> nonsense/b                         == 3

    ; still on track

    >> select nonsense 'i                 == none
    >> nonsense/i
    ** Script Error: Invalid path value: i.
    ** Where: nonsense/i

Where's the benefit to this inconsistency?  Is there some reason
why this shouldn't evaluate to None as well?

-jn-

-- 
; Joel Neely  [EMAIL PROTECTED]  901-263-4460  38017/HKA/9677
REBOL [] do [ do func [s] [ foreach [a b] s [prin b] ] sort/skip
do function [s] [t] [ t: "" foreach [a b] s [repend t [b a]] t ] {
| e s m!zauafBpcvekexEohthjJakwLrngohOqrlryRnsctdtiub} 2 ]
-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to