
On Sun, 7 Aug 2011 15:21:13 +0200
Ertugrul Soeylemez
Manfred Lotz
wrote: In Lua I could do something like this:
-- initialize empty table P = {}
P.a = "bla1" P.b = "bla2"
and so on.
Now I can refer to each value by name, and I also can easily iterate over the table P.
How can I do something similar in Haskell. Note: I do want only write each variable one time (or two times if I count the type definition).
I think you're not actually asking for record types at all, because that doesn't really fit into Haskell's type system. Rather you may want to have a look at maps. See the Data.Map module. Those are dictionaries with fast update and lookup as well as traversal operations.
Hmm, not quite sure I'm understanding why Data.Map would help. What I want to have is something like the following without the verboseness of it: -- this is a minimal example. -- Assume I would have some 15 such values. a = "bla" b = "bla2" valList = [ a, b ] Now in my program on the one hand I want to do something with all values, thus: map doSomething valList On the other hand I frequently want use single values in my program, like e.g.: let x = "suffix " ++ a What I don't want to do is to write a definition like valList because if I add a new value I have to remind myself not to forget to add it to valList too. -- Manfred -- Manfred