[Haskell-cafe] Project postmortem II /Haskell vs. Erlang/
Joel Reymont
joelr1 at gmail.com
Wed Jan 4 05:51:14 EST 2006
Yes, that _is_ obvious but then puts the burden on the programmer to
define the getters. It also misses the setters issue entirely.
Each field can definitely be made into a class and records can be
composed dynamically, HList-style. I think HList is _the_ facility
for doing this.
How do you create a "record" that has a field dictionary for updates
and retrievals and stores the order of the fields for serialization?
I think HList does provide for the order of records since it keeps
them in a list of sorts.
Can serialization of these HList-style records serialization be
efficient in this case? Would updating fields be efficient?
I tried composing my records using HList and that made GHC run out of
memory and bomb out. Simon Peyton-Jones fixed the problem promptly
but since I was not familiar with the profiler at the time I never
got to measuring the pickling efficiency. I figured if it's that
tough on the compiler then maybe I should pick an easier path.
Thanks, Joel
On Jan 4, 2006, at 8:41 AM, Ketil Malde wrote:
> Isn't the obvious solution to declare a class here? I.e.
>
> class HasProfits h where profits :: h -> Word64
>
> data Pot = Pot { pProfits :: !Word64, pAmounts = ![Word64] }
>
> instance HasProfits Pot where profits = pProfits
--
http://wagerlabs.com/
More information about the Haskell-Cafe
mailing list