[erlang-questions] [ANN] SeqBind, Sequential Binding Parse Transformation for Erlang (Experimental)

Tim Fletcher <>
Mon Jan 16 17:28:53 CET 2012


> Does it bother you that some of your code looks like this?

No, because it doesn't :)

Same issue mentioned here: http://damienkatz.net/2008/03/what_sucks_abou.html

The problem disappears if you use a functional programming style
instead of an imperative programming style.

The first example could be rewritten as this:

  F = fun (List) -> lists:map(fun (X) -> ... end, List) end
  G = fun (List) -> lists:filter(fun (X) -> ... end, List) end
  G(F(L))

Admittedly that's not much more readable, but the problem no longer
exists. Realistically you'd probably extract those functions fully,
leaving something like this:

  foo(bar(L))

Much easier to read and understand.

Ignoring the obtuse function name in the second example, I can't see
why an "accessor" function should need to return state. So
hypothetically, if the cowboy_http_req module had an API similar to
the proplists module, you'd be able to write something like this
instead:

  Q = cowboy_http_req:get_value(<<"q">>, Request)
  Id = cowboy_http_req:get_value(<<"id">>, Request)

Again, the problem no longer exists!

Cheers,
Tim



More information about the erlang-questions mailing list