[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