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@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/dev