On Fri, Feb 10, 2012 at 02:16:15PM +0400, Serge D. Mechveliani wrote:
> People, 
> please, what is wrong in this Spad code?
> 
> ---------------------------------------------------------------
> )abbrev package PARSEI ParseInt
> ParseInt() : with
>                   parseInteger : String -> Integer
>  ==
>   add
>      parseInteger(str : String) : Integer ==
> 
>        base : Integer :=  48
>        l    : Integer :=  # str
>        s    : Integer :=  0
>        for i in 1 .. l repeat
>                 (dNum := ord(elt(str, i)) - base;  s := (10*s) + dNum)
>        s
> ---------------------------------------------------------------
> ?
> It compiles and produces   -> parseInteger "0" 
>                               46                  


Changing  `base'  to  `b'  improves it !!
It occurs that there are several Spad library operations/functions 
called `base'. And _this_ `base' occurs to be  2 ! 

Nevertheless the program assigns  base := 48.  
Hence the compiler must accept that `base' is a local variable which 
is assigned a value. A local thing must override the global library 
export.
What might this all mean?

Thanks,

------
Sergei
[email protected]

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en.

Reply via email to