It just so happens that I am currently reading Real World Haskell, which has the following to say about types (excerpts from <a href="http://book.realworldhaskell.org/read/types-and-functions.html">http://book.realworldhaskell.org/read/types-and-functions.html</a>): <br>
<br><div style="margin-left: 40px;">When we say that Haskell has a
        <span class="emphasis"><em>strong</em></span> type system, we mean that the type
        system guarantees that a program cannot contain certain kinds
        of errors.<br><span id="comments_x_r2" class="comment"></span></div><p style="margin-left: 40px;" id="x_ul"><a name="x_ul"></a>In academic computer science, the meanings of
         “<span class="quote">strong</span>” and “<span class="quote">weak</span>” have a
         narrowly technical meaning: strength refers to <span class="emphasis"><em>how
         permissive</em></span> a type system is. A weaker type
         system treats more expressions as valid than a stronger type
         system.</p><p style="margin-left: 40px;" id="x_ul">Having a <span class="emphasis"><em>static</em></span> type system
        means that the compiler knows the type of every value and
        expression at compile time, before any code is executed.</p><p id="x_ul">Not to say they are right or wrong, but just another explanation. <br></p>Cheers,<br>yc<br><br><div class="gmail_quote">On Wed, Dec 9, 2009 at 11:17 PM, Marek Kubica <span dir="ltr"><<a href="mailto:marek@xivilization.net">marek@xivilization.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<br>
<br>
On Wed, 9 Dec 2009 16:09:15 -0800<br>
<div class="im">John Clements <<a href="mailto:clements@brinckerhoff.org">clements@brinckerhoff.org</a>> wrote:<br>
<br>
</div><div class="im">> > Weak/Strong typing: If a language is weakly typed, it tries to<br>
> > convert the types automatically and guess what you want to do. For<br>
> > example, consider "1" + 1. If a language is weakly typed, the<br>
> > answer is usually 2 (or "11"), because it guessed what you wanted<br>
> > to do. If it is strongly typed, you get an error/exception that<br>
> > this is not valid, one cannot add a string and an integer together.<br>
> ><br>
> > Popular example of weak typing: PHP<br>
> > Popular example of strong typing: Scheme :)<br>
><br>
> Ack! I totally reject this definition of "weak" vs. "strong" typing.<br>
> Generally, the difference you're describing has nothing to do with<br>
> the language's type system per se, but rather with the definition of<br>
> its primitives, and how flexible or restrictive they are.<br>
<br>
</div>Ok, what would be a better definition?<br>
<div class="im"><br>
> > Dynamic/Static typing: is the type information enforced? Can a<br>
> > "variable" change its type? Is it possible to call a function with<br>
> > types that weren't considered by the implemnentor of the function?<br>
> > Do you need to declare the types of function arguments and return<br>
> > values?<br>
> ><br>
> > Popular example of dynamic typing: Scheme :)<br>
> > Popular example of static typing: Java<br>
> > Popular example of static typing with type inference: ML<br>
> > (type inference = you don't need to specify the types, the language<br>
> > finds out about them by itself)<br>
><br>
> Ack! I totally disagree with this as well.<br>
><br>
> A statically-typed language is one with a built-in proof system that<br>
> demonstrates the impossibility of certain runtime errors. These<br>
> languages refuse to run any programs for which their proof system<br>
> cannot construct such a proof.<br>
><br>
> The choice of *which* errors are fenced out by the proof system is up<br>
> to the designer of the type system, which makes clear distinctions<br>
> between statically-typed languages and non-statically-typed languages<br>
> impossible.<br>
<br>
</div>I don't see how a clear distinction between these two would not be<br>
possible. Care to provide an example?<br>
<br>
regards,<br>
<div><div></div><div class="h5">Marek<br>
_________________________________________________<br>
For list-related administrative tasks:<br>
<a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
</div></div></blockquote></div><br>