No, it's not such a serious issue. They are connected with catenary cables selfweight.

Iza




W dniu 10.04.2019 17:44, Perrichon napisał(a):
Are these functions coming from hydraulic simulator for power plants?

Best regards


Before printing, think about ENVIRONMENTAL responsabity

-----Message d'origine-----
De : users <[email protected]> De la part de Izabela Wójcik-Grzaba
Envoyé : mercredi 10 avril 2019 17:31
À : Users mailing list for Scilab <[email protected]>
Objet : Re: [Scilab-users] Nested function definition

Ok, sorry. It's my mistake connected with using math terms not properly.
Now I understand that nested function is more general term in Scilab
help. The help example is similar to mine and this is the whole
misunderstanding.
I appreciate your comprehensive explanation.
Now I am happy because the notation of my (mathematical) functions
become simpler.

Kind regards,
Iza





W dniu 10.04.2019 17:10, Samuel Gougeon napisał(a):
Izabela,

I have not clearly understood why you are speaking about "nested
functions" in your example.
A nested function is a function that is _defined_  in another one.

About the example in the function help page:
It is right, but with Scilab 6, it looks a bit outdated to me.
Indeed, let's consider the following example:

// Content of the File myTest.sci
function myTest()
   disp("myTest() is running")
   myNextFun()
endfunction
function myNextFun()
    disp("myNextFun() is running")
endfunction
// End of myTest.sci file

When building a library (say "myLib"), this file is compiled, and

        * With Scilab 5 : both functions myTest() and myNextFun() are
registered in the library, and so ARE PUBLIC: Both can be called from
anywhere, noticeably from the top-level, the console.
The only way to make myNextFun() a private function known only by
myTest() is to define it IN myTest(), as a nested function.

        * With Scilab 6: only myTest() is registered in myLib library, so is
public, and can be called from anywhere. In the opposite, myNextFun()

        * is NOT registered in the library
        * so, is unknown from the console,

        * is shared and can be called only by other functions defined in the
same file.

This is a more powerful implementation for the functions privacy,
because then
        * a private function (say myNextFun()) does no longer need to be
recompiled each time that myTest() is called.

        * IMO, this makes the code clearer

 This change in Scilab 6 could be documented in the --> help function
page, in order to discourage true nested function. By the way, the
example in the help misses being indented.

However, out of libraries, nested functions can still be used in
scripts.sce or in files.sci that are just exec()uted, for the same
purpose: keeping nested functions private.

HTH
Regards
Samuel

Le 10/04/2019 à 16:04, Izabela Wójcik-Grząba a écrit :

Ok, so why nested function in help is so complicated:

//nested functions definition
function y=foo(x)
a=sin(x)
function y=sq(x), y=x^2,endfunction
y=sq(a)+1
endfunction

foo(%pi/3)

Couldn't it be formulated like below:

function y1=foo1(x)
a=sin(x);
y1=a^2+1;
endfunction

foo1(%pi/3)

That's why I had problems with my functions and couldn't understand
why it has to be so complicated.

Thank you once more.

Iza
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users

_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users

Reply via email to