On 8 Mar 2006, at 14:21, zell_ffhut wrote:
Thank you, It's working as planed now
Trying to do a function now that changes the value of an element of
the
list. In programming languages i've used in the past, this would be
done
somthing like -
changeValue x i [xs] = [xs] !! i = x
where x is the value to change to, i is the index of the value to
change,
and [xs] is the list.
This however, dosen't work in Haskell. How would this be done in
Haskell?
Put simply it isn't.
One of the percepts of a functional language is that variables are
bound, not set - once a variable has a value it has that value
forever. What you want to do is return a new list, that looks like
the old one, but has one value changed
changeValue x 0 (y:ys) = (x:ys)
changeValue x n (y:ys) = y:(changeValue x (n-1) ys)
Bob
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe