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

Reply via email to