[scilab-Users] Trouble with the function parser

Vincent COUVERT vincent.couvert at inria.fr
Tue Jan 8 13:40:07 CET 2008


Hi,

It's a Scilab parser bug. You can work around it by defining your 
function on one line only:
for k = 1:21
  function [x,y]=myfct2(a,b);x=a+b;y=a-b;endfunction
  [u,v] = myfct2(k, k+1)
end

Could you please report this bug in Bugzilla database ?

Vincent

PS :
 - you do not need to use "do" in a for loop definition
 - your loop redefines the function myfct2 for every k value





Teodor Calin a écrit :
> Okay, here's my  complaint:
>
>
> I write this code:
> "
> clear;
>  
> function [x,y]=myfct(a,b)
> x=a+b
> y=a-b
> endfunction
>
> [x,y]=myfct(3,2)
>
> //////////////////////////////////
>
> for k = 1:21 do
>
>   function [x,y]=myfct2(a,b)
>       x=a+b
>       y=a-b
>   endfunction
>
>   [u,v] = myfct2(k, k+1)
>  
> end
> "
>
> And I get this result:
> "
> y  =
>
>     1.
>  x  =
>
>     5.
> =a-b
>  !--error 2
> invalid factor
> at line       3 of function myfct2 called by :
>   endfunction
> line    20 of exec file called by :
> exec("S:/Depannage.sci");
> in  execstr instruction    called by :
> "
>
> In other words, defining functions with more than one return variables 
> inside loops
> does not work.
> By the way, what (in the *#!§^$) does 'invalid factor' mean ?
>
>
> Also, I'm really mad about this, because if I write
>
> "
> for k = 1:21 do
>
>   function y=myfct3(a,b)
>       y=a-b
>   endfunction
>
>   u = myfct3(k, k+1)
>  
> end
> "
>
> this works perfectly well. So I expected it to work for the above too !
>
> So, is there a way to circumvent this ?
>
> Thanks in advance
>
> Teodor
>
> ------------------------------------------------------------------------
> Ne gardez plus qu'une seule adresse mail ! Copiez vos mails 
> <http://fr.rd.yahoo.com/mail/mail_taglines/trueswitch/*http://www.trueswitch.com/yahoo-fr/> 
> vers Yahoo! Mail 

-- 
==============================================
Vincent COUVERT
Centre de Recherche INRIA Paris-Rocquencourt
Domaine de Voluceau - B.P. 105
78153 Le Chesnay Cedex
==============================================
Equipe Projet SCILAB
Bâtiment 1B - Bureau 013
Email : vincent.couvert at inria.fr
Tél : +33 (0)1 39 63 54 46
Fax : +33 (0)1 39 63 55 94
==============================================



More information about the users mailing list