<div class="gmail_quote">2009/3/18 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;">
<div class="im"><br>
</div>Here's an actual block of code from the Erlang compiler:<br>
<br>
lc_tq(Line, E, [{generate,Lg,P,G}|Qs0], Mc, St0) -><br>
{Gs,Qs1} = splitwith(fun is_guard_test/1, Qs0),<br>
{Name,St1} = new_fun_name("lc", St0),<br>
{Head,St2} = new_var(St1),<br>
{Tname,St3} = new_var_name(St2),<br>
LA = lineno_anno(Line, St2),<br>
LAnno = #a{anno=LA},<br>
Tail = #c_var{anno=LA,name=Tname},<br>
{Arg,St4} = new_var(St3),<br>
{Nc,[],St5} = expr({call,Lg,{atom,Lg,Name},[{var,Lg,Tname}]}, St4),<br>
{Guardc,St6} = lc_guard_tests(Gs, St5), %These are always flat!<br>
{Lc,Lps,St7} = lc_tq(Line, E, Qs1, Nc, St6),<br>
{Pc,St8} = list_gen_pattern(P, Line, St7),<br>
{Gc,Gps,St9} = safe(G, St8), %Will be a<br>
function argument!<br>
Fc = function_clause([Arg], LA, {Name,1}),<br>
....</blockquote><div><br>As the one who wrote the original version of that code (it transforms list comprehensions to nested recursive functions) I must say I don't really see the problem. To me it seems more like a theoretical problem, when coding I just do it. That is not where the problems lay when coding, not for me at least.<br>
<br>Then maybe I am totally miljöförstörd, ruined by my programming environment.<br><br>Robert<br><br>P.S. Of course if you were to use LFE then the problem would go away for free as you have let*. :-)<br></div></div><br>