| Bill Allombert on Wed, 31 May 2006 17:43:14 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: What happened to 'local'? |
On Wed, May 31, 2006 at 05:18:42PM +0200, Karim Belabas wrote:
>
> What makes you think it has disappeared ?
>
> (17:14) gp > test(x)={local(a);a=x+1;return(a)}
> (17:14) gp > test(12)
> %1 = 13
> (17:14) gp > a
> %2 = a
>
> Btw the braces are not necessary for 1-liners:
>
> test(x) = local(a);a=x+1;return(a)
>
> would work just as well.
This is true but I would like to deprecate this construct and require
the braces unless the body is a single expression like in:
test(x) = x^2+1
So I would urge 2.3 users to get ready to the fact that 2.5 might not
accept 'test(x) = local(a);a=x+1;return(a)' as valid.
Allowing the contrust 'test(x) = local(a);a=x+1;return(a)' has several
nasty side-effect (line breaks significant, subfunctions body are
ambiguous) and make parsing the grammar significantly harder.
Cheers,
Bill.