
f xs = (2,2222) : filter ((/=2) . fst) xs It works but not general as `f` still needs to change other value according to the "KEY". Maybe Data.List will supply what i need.
Ketil Malde-5 wrote:
zaxis
writes: value <- readIORef aaa writeIORef aaa (f value)
then aaa will *point to* a new value.
Exactly. That's what IORefs are, references pointing to contents that can be changed in the IO monad.
The original value will be Garbage Collected, right ?
Yes, unless something else is holding on to it.
Is [(1,1),(2,2),(3,3)] been regarded as a hash?
It's a list of pairs. You can treat it as an association list using e.g. 'lookup' from Data.List, if that's what you mean.
If not, what is the best way to change it to [(1,1),(2,2222),(3,3)] in function `f` ?
Not sure if there's anything in Data.List, but you could do something like:
f xs = (2,2222) : filter ((/=2) . fst) xs
-k -- If I haven't seen further, it is by standing in the footprints of giants _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- View this message in context: http://www.nabble.com/How-can-i-safely-change-the-value-of-specified-key---t... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.