[Scilab-users] Variable scope in Scilab

Federico Miyara fmiyara at fceia.unr.edu.ar
Sat Feb 27 01:33:34 CET 2021


Stéphane,

I agree it shouldn't happen, but the same moment access to outer 
variables is granted you can't prevent such thing to happen since inside 
the function all variables have a name which is more than just a symbol 
or a mute variable, and this includes undefined arguments.

This scoping feature is dangerous and I don't think it would be 
advisable to create a macro for general use exploiting it.

May be someone can provide an example where it has been used with profit 
or explain why it was originally introduced

Regards,

Federico Miyara

On 26/02/2021 10:38, Stéphane Mottelet wrote:
> Hi all,
>
> In Scilab the scope of variables is quite permissive but even in Julia 
> (really strict rules) we can have the following behavior:
>
> function y=f(x)
>  y=x+a;
> end
>
> a=1;
> f(2)
> a=2;
> f(3)
>
> -> a=1;
>
> --> f(2)
>  ans  =
>
>    3.
>
> --> a=2;
>
> --> f(3)
>  ans  =
>
>    5.
>
> Yesterday afternoon I was my students for a Scilab beginners tutorial, 
> and by accident one of them had "x" defined before in the main 
> workspace and tried to call f without arguments. I reproduce the 
> experiment here by explicitely defining x before the call:
>
> x=1;
> f
>
> --> x=1;
>
> --> f
>  ans  =
>
>    3.
>
> Allowing the function inner scope to see variables of the outer scope 
> is one thing, you may or may not agree this is not the point here, but 
> allowing to call f without arguments just because the formal input 
> parameter has the same symbol as an outer scope symbol is another 
> thing. I knew this was possible even if i never used such a feature, 
> but my students were so puzzled by this, particularly those who 
> already learned other low-level languages, that I decided to propose 
> the suppression of this, that I consider as a serious potential source 
> of many bugs. Don't tell me that this would break some user code 
> because I frankly have no consideration for this kind of crappy 
> shortcut and, sorry if it may sound rude, for programmers who use it...
>
> S.
>



-- 
El software de antivirus Avast ha analizado este correo electrónico en busca de virus.
https://www.avast.com/antivirus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20210226/ac985311/attachment.htm>


More information about the users mailing list