steve vinoski mentioned this solution in his reply to damien katz<br>finding the same problem.<br><br><a href="http://steve.vinoski.net/blog/2008/03/10/damien-katz-criticizes-erlang/">http://steve.vinoski.net/blog/2008/03/10/damien-katz-criticizes-erlang/</a><br>
<pre>f(X) -><br>    lists:foldl(fun(F, Last) -> F(Last) end,<br>        foo(), [fun whee/1, fun bar/1, fun xyzzy/1]).<br></pre><div class="gmail_quote">2009/3/17 Matthew Dempsky <span dir="ltr"><<a href="mailto:matthew@dempsky.org">matthew@dempsky.org</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I like pattern matching in the majority of cases, but I find I write<br>
enough code where I need to incrementally update a data structure, and<br>
maintaining that code is a pain when I have code like:<br>
<br>
  X = foo(),<br>
  X1 = bar(X),<br>
  X2 = xyzzy(X1),<br>
  blah(X2).<br>
<br>
and later want to change it to:<br>
<br>
  X = foo(),<br>
  X1 = whee(X),<br>
  X2 = bar(X1),<br>
  X3 = xyzzy(X2),<br>
  blah(X3).<br>
<br>
This means having to change four lines of code, when really it's<br>
conceptually just one change.  I'd like to suggest being able to do<br>
something like:<br>
<br>
  X = foo(),<br>
  r(X) = whee(X),<br>
  r(X) = bar(X),<br>
  r(X) = xyzzy(X),<br>
  blah(X).<br>
<br>
where "r(?VAR) = ?EXPR" means to reassign ?VAR to ?EXPR, even if it<br>
previously has an assigned value.<br>
<br>
Thoughts?  Does anyone have suggestions for better syntax?  I think<br>
this can be handled with a parse transform, and I'm considering<br>
writing a parse transform to handle it.  (I haven't checked if anyone<br>
else has proposed similar functionality in the past, but this is<br>
something that's been bugging me for a while, and I've finally had to<br>
rename variables manually enough times to propose this.)<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br>