[Scilab-Dev] [Scilab-users] Variable scope in Scilab

Namrata Kumari 017nks at gmail.com
Fri Feb 26 15:05:42 CET 2021


Please remove me from this mailing list.

Thank you,
Namrata

On Fri, Feb 26, 2021, 7:29 PM Stéphane Mottelet <stephane.mottelet at utc.fr>
wrote:

> Hi devs,
>
> Just after changing the rule in macro.cpp I see this at startup, and I
> am laughing out loud ;-)
>
> Scilab branch-6.1 (Feb 19 2021, 14:37:51)
> at line    44 of function mdelete            (
> /Users/mottelet/git/scilab_6.1.orig/scilab/modules/fileio/macros/mdelete.sci
>
> line 57 )
> at line    26 of function atomsAUWriteAccess (
> /Users/mottelet/git/scilab_6.1.orig/scilab/modules/atoms/macros/atoms_internals/atomsAUWriteAccess.sci
>
> line 42 )
> at line    11 of function atomsSystemInit    (
> /Users/mottelet/git/scilab_6.1.orig/scilab/modules/atoms/macros/atomsSystemInit.sci
>
> line 27 )
>
> Wrong number of input arguments.
>
> -->
>
> Does it mean that we use the "crappy shortcut" as a feature in Scilab
> internals ?
>
> S.
>
> Le 26/02/2021 à 14:38, Stéphane Mottelet a écrit :
> > 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.
> >
> --
> Stéphane Mottelet
> Ingénieur de recherche
> EA 4297 Transformations Intégrées de la Matière Renouvelable
> Département Génie des Procédés Industriels
> Sorbonne Universités - Université de Technologie de Compiègne
> CS 60319, 60203 Compiègne cedex
> Tel : +33(0)344234688
> http://www.utc.fr/~mottelet
>
> _______________________________________________
> dev mailing list
> dev at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/dev/attachments/20210226/729c8e42/attachment.htm>


More information about the dev mailing list