[Haskell-cafe] How can i safely change the value of specified key ?

zaxis z_axis at 163.com
Thu Oct 22 05:30:51 EDT 2009


>>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 <z_axis at 163.com> 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 at 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---tp26005244p26006947.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.



More information about the Haskell-Cafe mailing list