[erlang-questions] per function/process locals
Ulf Wiger (TN/EAB)
ulf.wiger@REDACTED
Wed May 2 13:21:41 CEST 2007
I haven't followed the details of this thread, but
when dealing with records, this pattern appears quite
often.
As it's not a great idea to export records in an API,
I often prefer to take a property list as input.
If I then still want to use a record internally for
efficient random access, I end up having to traverse
the property list and build a record. There are
different ways to do this:
init_state(L) ->
lists:foldl(
fun({a, A}, S) -> S#st{a = A};
({b, B}, S) -> S#st{b = B};
...
end, #st{}, L).
I tend to to the following, for convenience:
[A, B, C, D] =
[proplists:get_value(K,L) ||
K <- [a, b, c, d]],
#st{a = A, b = B, c = C, d = D}
BR,
Ulf W
> -----Original Message-----
> From: erlang-questions-bounces@REDACTED
> [mailto:erlang-questions-bounces@REDACTED] On Behalf Of James Hague
> Sent: den 1 maj 2007 22:45
> To: erlang-questions@REDACTED
> Subject: Re: [erlang-questions] per function/process locals
>
> > Speaking only for myself, I find that it is a rare
> algorithm where I
> > need more than a handful of "variables" in a loop,
>
> I actually do this quite a bit. Sometimes problems have
> bunch of related variables, but records are awkward. Even
> just having 5 values getting passed around and "updated" in a
> loop bugs me. Editing that kind of code feels like busy work.
>
> I think the Erlangyest solution is to implement Joe's structs
> proposed a few years ago, then have the compiler recognize
> situations where structs are created and modified in a loop.
>
> > I'd rather have the let-for-then construct.
>
> Could you give an example?
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>
More information about the erlang-questions
mailing list