[Haskell-beginners] variables in haskell

Tillmann Rendel rendel at daimi.au.dk
Tue Oct 14 04:03:43 EDT 2008


Matthew J. Williams wrote:
> Hello listers, would one be correct in thinking that 'bound variables' 
> such as those used in haskell were in fact constants?

I think I see what you mean, but it is not entirely correct. A constant 
is something which has the same value at all times. For example, 
top-level declarations in most languages, including Haskell, can be seen 
as constants:

   foo = "hello world" -- this foo will always mean "hello world"

If the value associated with a name changes from time to time, then we 
call that name a variable.

   bar foo = ... -- foo will mean something else everytime bar is called

The behaviour of Haskell variables is similiar to "constant variables" 
or "final variables" in other languages, e.g. in Java

   public int bar(final int foo) {
   }

Similiar to the Haskell version, in this Java code, foo will be 
something different for each call of bar, but it will not change during 
one execution of bar. Your wouldn't call foo a constant here, would you?

   Tillmann


More information about the Beginners mailing list