<br><br><div class="gmail_quote">On Tue, Mar 11, 2008 at 10:02 AM, Ladislav Lenart <<a href="mailto:lenartlad@volny.cz">lenartlad@volny.cz</a>> wrote:<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="Ih2E3d">Yariv Sadan wrote:<br>
> Hi Robert,<br>
><br>
> I think the "issues" with Erlang's syntax are quite overblown. They<br>
> took me about a day to master and I hardly notice any of them when I'm<br>
> actually writing and editing code. I certainly don't want Erlang to<br>
> look any more like Java/C than it does now. I'm pretty happy with the<br>
> Erlang syntax (I also think that LFE provides a very interesting<br>
> option for those who are curious about Lisp :) )<br>
><br>
> The main change I would like to see is to have the compiler<br>
> automatically infer the types of record variables (when possible) to<br>
> shorten the amount of code required for accessing their properties. I<br>
> created an unfinished solution here:<br>
> <a href="http://code.google.com/p/recless/" target="_blank">http://code.google.com/p/recless/</a>. This page has a couple of examples<br>
> for how it could be used.<br>
><br>
> I would also like to be able to overload macro names with different<br>
> arities and to have some mechanism for introspecting the properties of<br>
> records and accessing them dynamically at runtime.<br>
<br>
</div>This is almost what I was about to write (except that I don't have partial<br>
solution to the problem :-)<br>
<br>
For me, the syntax is still a bit too noisy. Whenever I write a module and<br>
compile it I have two or three comile-error cycles on errors that wouldn't<br>
be there if the syntax was a little bit different. But as many pointed out<br>
this is not a big deal really.<br>
<br>
But what I would like to have in Erlang is definitely better introspection /<br>
reflection capabilities. I would like to have records as runtime structures,<br>
so I could write:<br>
<br>
   Var#{x = foo, y = bar}<br>
<br>
where Var could be any record that has slots x and y (it might have others),<br>
record_info would be a normal function that can operate on variables.<br>
</blockquote><div><br>It is misunderstand what record is. Record is not this sort of things. Use our own structure for this purpose. Record is not object, hash, dictionary or whatever  you really want. Record is not designed for some sort of inheritance. Record is structure for memory friendly storage of fixed "records" a which one will be changed very rare and just only by design.<br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
I would also very much like to be able to programmatically create/inspect/modify<br>
receive (and other) clauses at runtime. But this is just wishful thinking I think.<br>
<font color="#888888"><br>
Ladislav Lenart<br>
</font><div><div></div><div class="Wj3C7c"><br>
<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>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>--Hynek (Pichi) Vychodil