reposted because my mailer is evil
--

On Thu, 05 Sep 2002 09:31:45  
 Damian Conway wrote:
>Erik Steven Harrison wrote:
>
>> I know that the property syntax is pseudo established, 
>> but I'm beggining to become a bit jaded about all the 
>> built in properties were building. What about good ol' 
>> aliases?
>> 
>> sub hidden (str $name, int $force := $override) {...}
>
>I'm not keen on it because it will be hard to explain
>(or detect) the difference between that and:
>
>   sub hidden (str $name, int $force //= $override) {...}
>

Just found this hidden in my inbox. I didn't think anyone was paying 
attention ;-).


I think that the difference can be swept under the table in a 
handwavy sort of manner by pointing out that these subroutine 
declarations shouldn't be pointing to globals or widely scoped 
lexicals like that. But this all brings me back to the question of 
lexical leaking. Are $name and $force lexical to the sub? I know that 
we are trying to avoid lexical scopes leaking into each other, but I 
honestly can't figure out how that rules and these argument 
declarations interact. Someone care to explain?


>What I most like about the C<is> syntax is (like methods in
>OO Perl), it associates a meaningful *name* with each
>deviation from standard behaviour.

This is the argument that would win me over to the property syntax. 
Self documenting code is an admirable goal. But I wonder about our 
overuse of 'is'. The performance issues of a hash that lives with 
every variable aside, it all looks the same to me. And I like 
different things to look different. In a related note, I'm always 
confused by whether or not we look at the value of the variable or 
it's name. See below . . .


>
>I find:
>
>   sub hidden (str $name, int $force is aka($override)) {...}
>
>*much* more readable, since I can read it in English.

Yeah . . . except I want at least single quotes around that darn 
$override. Required singles even. Having it be context sensitive to 
the type of property is WAY to subtle for me. And if $override is a 
reference I'd like that to DWIM (though I understand that I may be 
the only person for which that behavior is intuitive). And what 
happens with double quotes -  a symref? Ack! 


If $force is aka(@override) is going to be a compile time error, then 
why can't we just $force is aka(override) and just carry the typing 
over. And if it's not a compile time error then what in Knuth's name 
does it . . . . oh never mind - my head just exploaded.


-Erik


>
>Damian
>
PS - Ha! My name above Damian's :-)


Is your boss reading your email? ....Probably
Keep your messages private by using Lycos Mail.
Sign up today at http://mail.lycos.com

Reply via email to