<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <title></title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 09/23/2011 10:32 AM, Manjusha Joshi wrote:
    <blockquote
cite="mid:CAKGzMdYEb4bhW3hwjaoQsNLknq81fGbtk-MYZFPPDX6sKCYOwA@mail.gmail.com"
      type="cite">Thanks Mathieu, for pointing out  the difference.<br>
      <br>
      Please go through the mail for in line reply.<br>
      <br>
      <div class="gmail_quote">On Fri, Sep 23, 2011 at 1:25 PM, Mathieu
        Dubois <span dir="ltr"><<a moz-do-not-send="true"
            href="mailto:mathieu.dubois@limsi.fr">mathieu.dubois@limsi.fr</a>></span>
        wrote:<br>
        <blockquote class="gmail_quote" style="border-left: 1px solid
          rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left:
          1ex;"><br>
          <br>
          Le 23/09/2011 02:54, Manjusha Joshi a écrit :
          <div>
            <div class="h5"><br>
              <blockquote class="gmail_quote" style="border-left: 1px
                solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex;
                padding-left: 1ex;">
                Hello<br>
                <br>
                <br>
                   For your problem you should have a look at the
                funcprot function.<br>
                <br>
                   However, the default mode is to issue a warning when
                redefining<br>
                   predefined functions.<br>
                <br>
                Thanks for reply.<br>
                <br>
                I tried following<br>
                 A  =<br>
                <br>
                    2.    3.    4.    78.<br>
                <br>
                <br>
                -->funcprot(2)<br>
                <br>
                <br>
                -->sum(A)<br>
                 ans  =<br>
                <br>
                    87.<br>
                <br>
                -->sum=98<br>
                      !--error 223<br>
                It is not possible to redefine the sum primitive this
                way (see clearfun).<br>
                <br>
                <br>
                -->deff('y=f(x)','y=x*x')<br>
                <br>
                -->deff('y=f(x)','y=2*x*x')<br>
                                         !--error 111<br>
                Trying to re-define function f.<br>
                <br>
                <br>
                User defined function should be redefined. At the same
                time scilab<br>
                predefined functions should not.<br>
                I tried following:<br>
                <br>
                -->clearfun f<br>
                 ans  =<br>
                <br>
                  F<br>
                <br>
                -->clearfun sum<br>
                 ans  =<br>
                <br>
                  T<br>
                Now it is allowing to redefine sum which should be
                protected. On the<br>
                other hand it is not allowing to redefine the function
                f. Which one<br>
                needs to redefine several times in one session.<br>
                <br>
              </blockquote>
            </div>
          </div>
          clearfun is to clear predefined functions like sum (maybe it
          should be called clearpredef).<br>
          <br>
          To redefine your function f, use clear f.<br>
          You can check that f exists with the exists function (not
          mandatory).</blockquote>
        <div> </div>
         True! Variables and user defined function can be cleared by
        clear command.<br>
        <div><br>
           <br>
          -->exists('f')<br>
           ans  =<br>
           <br>
              1. <br>
          works fine with user defined functions. How ever, which are
          already known to user since, it is defined by user.<br>
          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 <br>
          get assigned by user by mistake.<br>
          <br>
             <br>
          -->exists('prod')<br>
           ans  =<br>
           <br>
              0.  <br>
          <br>
          Is there any way to check that (for example)  prod is a
          predefined function?<br>
        </div>
      </div>
    </blockquote>
    I'm not sure to understand: if you use funcprot(2) all functions are
    protected so there is no assignement by mistake. Then you can define
    your function f and clear it when needed...<br>
    <br>
    <blockquote
cite="mid:CAKGzMdYEb4bhW3hwjaoQsNLknq81fGbtk-MYZFPPDX6sKCYOwA@mail.gmail.com"
      type="cite">
      <div class="gmail_quote">
        <div>Regards,<br>
          <br>
          <br>
           
          <br>
        </div>
        <blockquote class="gmail_quote" style="border-left: 1px solid
          rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left:
          1ex;">
          <div>
            <div class="h5"><br>
              <blockquote class="gmail_quote" style="border-left: 1px
                solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex;
                padding-left: 1ex;">
                <br>
                What is going wrong? Am I missing something.<br>
                Regards<br>
                <br>
                <br>
                <br>
                   On 09/22/2011 12:51 PM, Manjusha Joshi wrote:<br>
                <br>
                       Hello,<br>
                <br>
                       sum, prod etc. are predefined functions in
                scilab.<br>
                <br>
                       if some one with out knowing the name of the
                 predefind function<br>
                       use  it as avariable name, as follows:<br>
                <br>
                <br>
                       -->A=[2,3,4,78]<br>
                         A  =<br>
                <br>
                           2.    3.    4.    78.<br>
                <br>
                       -->sum(A)<br>
                         ans  =<br>
                <br>
                           87.<br>
                <br>
                       -->sum=96<br>
                         sum  =<br>
                <br>
                           96.<br>
                <br>
                       -->sum(A)<br>
                              !--error 21<br>
                       Invalid index.<br>
                <br>
                <br>
                <br>
                         scilab not even complains. In old versions at
                least there was<br>
                       some error message.<br>
                <br>
                       This happens in the current session only.<br>
                       Is there any way to protect the predefined
                functions and their<br>
                       names?<br>
                       I think we should declare these function names as
                predefined<br>
                       functions.<br>
                <br>
                <br>
                   <br>
                <br>
                <br>
                <br>
                <br>
                <br>
                -- <br>
              </blockquote>
            </div>
          </div>
        </blockquote>
      </div>
       <br>
      -Manjusha<br>
    </blockquote>
    <br>
  </body>
</html>