"Sean O'Dell" <sean / celsoft.com> wrote in message news:<200407081308.50197.sean / celsoft.com>...
> You can have variables in a functional language, but what you can't have are 
> globals that act statefully, causing any functions you write to return 
> different values when passed the same parameter values.  You can have 
> (pseudocoded):
> 
> function myfunc(a)
>   b = anotherfunc(a)
>   return sin(b)
> end

Technically, in a purely functional language, you also shouldn't be
able to reassign a new value to 'b', once you set it.  This has
nothing to do with the scope, and indeed, there are no such things as
"variables" in *purely* functional languages, because they shouldn't
vary.  What you can have is aliases for values.  Haskell, for example,
allows you to use "let" and "where" to assign values to aliases that
look alot like variables, but are immutable.

--- SER