I think a lot of confusion here among different issues:<br><br>- Erlang is strongly typed, you cannot get around the type system and functions complain (generate exceptions) when they don't get the right types<br>- It is, however, dynamically typed and not statically typed in that the types are checked at run time and not at compile time<br>
- If you deem the documentation and function arguments/returns to be confusing this has absolutely nothing to do with typing, whether strong, weak, static or dynamic.<br><br>That it is dynamically typed really does help with hot code loading. Otherwise you either have static and unchangeable module interfaces or you could get a system which is *really* unsafe, a function is called with one data type and thinks it is getting another and doesn't check as it knows the compiler has checked. Distribution makes this problem worse.<br>
<br>I will freely admit that some of the functions don't always have intuitive arguments, are inconsistent or otherwise don't uphold the principle of least surprise. One reason for this is that the system evolved rather freely over time and many things (useful) things were just added to the system without much consideration for consistency and such. And, as everyone who has tried, knows changing things afterwards is *not trivial*.<br>
<br>Robert<br><br><div class="gmail_quote">2008/10/21 Steve Davis <span dir="ltr"><<a href="mailto:steven.charles.davis@gmail.com">steven.charles.davis@gmail.com</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="Ih2E3d">On Oct 21, 9:45 am, Rapsey <<a href="mailto:rap...@gmail.com">rap...@gmail.com</a>> wrote:<br>
> I don't understand. What does this have to do with the language being<br>
> strongly typed?<br>
<br>
</div>Well, the way I think about it is that types let you define what the<br>
function expects, and what you can expect in return. So it would<br>
provide a contract or agreed protocol in a far more cohesive way that<br>
is possible right now in erlang (cf. "spec" and "record"). Types would<br>
speed up coding as it would avoid you having to dig around in every<br>
function's source to see what you should expect in return. There's<br>
probably some fatal flaw in this thinking -- which is why I asked the<br>
question :)<br>
<font color="#888888"><br>
/s<br>
</font><div><div></div><div class="Wj3C7c">_______________________________________________<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>