[scilab-Users] predefined functions in Scilab

Manjusha Joshi manjusha.joshi at gmail.com
Fri Sep 23 10:32:20 CEST 2011


Thanks Mathieu, for pointing out  the difference.

Please go through the mail for in line reply.

On Fri, Sep 23, 2011 at 1:25 PM, Mathieu Dubois <mathieu.dubois at limsi.fr>wrote:

>
>
> Le 23/09/2011 02:54, Manjusha Joshi a écrit :
>
>  Hello
>>
>>
>>    For your problem you should have a look at the funcprot function.
>>
>>    However, the default mode is to issue a warning when redefining
>>    predefined functions.
>>
>> Thanks for reply.
>>
>> I tried following
>>  A  =
>>
>>     2.    3.    4.    78.
>>
>>
>> -->funcprot(2)
>>
>>
>> -->sum(A)
>>  ans  =
>>
>>     87.
>>
>> -->sum=98
>>       !--error 223
>> It is not possible to redefine the sum primitive this way (see clearfun).
>>
>>
>> -->deff('y=f(x)','y=x*x')
>>
>> -->deff('y=f(x)','y=2*x*x')
>>                          !--error 111
>> Trying to re-define function f.
>>
>>
>> User defined function should be redefined. At the same time scilab
>> predefined functions should not.
>> I tried following:
>>
>> -->clearfun f
>>  ans  =
>>
>>   F
>>
>> -->clearfun sum
>>  ans  =
>>
>>   T
>> Now it is allowing to redefine sum which should be protected. On the
>> other hand it is not allowing to redefine the function f. Which one
>> needs to redefine several times in one session.
>>
>>  clearfun is to clear predefined functions like sum (maybe it should be
> called clearpredef).
>
> To redefine your function f, use clear f.
> You can check that f exists with the exists function (not mandatory).


 True! Variables and user defined function can be cleared by clear command.


-->exists('f')
 ans  =

    1.
works fine with user defined functions. How ever, which are already known to
user since, it is defined by user.
How ever, Scilab defined functions, which I will call as predefined
functions are not all known to user, so there is risk of pre defined
function
get assigned by user by mistake.


-->exists('prod')
 ans  =

    0.

Is there any way to check that (for example)  prod is a predefined function?
Regards,




>
>
>> What is going wrong? Am I missing something.
>> Regards
>>
>>
>>
>>    On 09/22/2011 12:51 PM, Manjusha Joshi wrote:
>>
>>        Hello,
>>
>>        sum, prod etc. are predefined functions in scilab.
>>
>>        if some one with out knowing the name of the  predefind function
>>        use  it as avariable name, as follows:
>>
>>
>>        -->A=[2,3,4,78]
>>          A  =
>>
>>            2.    3.    4.    78.
>>
>>        -->sum(A)
>>          ans  =
>>
>>            87.
>>
>>        -->sum=96
>>          sum  =
>>
>>            96.
>>
>>        -->sum(A)
>>               !--error 21
>>        Invalid index.
>>
>>
>>
>>          scilab not even complains. In old versions at least there was
>>        some error message.
>>
>>        This happens in the current session only.
>>        Is there any way to protect the predefined functions and their
>>        names?
>>        I think we should declare these function names as predefined
>>        functions.
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>>
>
-Manjusha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20110923/daf7f792/attachment.htm>


More information about the users mailing list