Larry Wall wrote:
> On Wed, Aug 17, 2005 at 01:56:35PM +1000, Adam Kennedy wrote:
> : 
> : >: If not a special form, should this work? 
> : >: 
> : >:     my $pi is constant;
> : >:     $pi = 3;
> : >
> : >That could be made to work by defining constant to mean you can assign
> : >to it if it's undefined.  But then it gets a little harder to reason
> : >about it if $pi can later become undefined.  I suppose we could
> : >disallow undefine($pi) though.
> : 
> : Which would basically throw away compile-time optimizations relating to 
> : constants wouldn't it?
> 
> You could still reason about it if you can determine what the initial
> value is going to be.  But certainly that's not a guarantee, which
> is one of the reasons we're now calling this write/bind-once behavior
> "readonly" and moving true constants to a separate declarator:
> 
>     my $pi is readonly;
>     $pi = 3;
> 
> vs
> 
>     constant $pi = 3;
> 
> or
> 
>     constant Num pi = 3;
> 
> or if you like, even
> 
>     constant π = 3;
> 
> Larry
OK, so then there is not "is constant" at all... just "is readonly"?
Makes a lot more sense to me.

Adam

Reply via email to