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">&lt;<a href="mailto:marek@xivilization.net">marek@xivilization.net</a>&gt;</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 &lt;<a href="mailto:clements@brinckerhoff.org">clements@brinckerhoff.org</a>&gt; wrote:<br>
<br>
</div><div class="im">&gt; &gt; Weak/Strong typing: If a language is weakly typed, it tries to<br>
&gt; &gt; convert the types automatically and guess what you want to do. For<br>
&gt; &gt; example, consider &quot;1&quot; + 1. If a language is weakly typed, the<br>
&gt; &gt; answer is usually 2 (or &quot;11&quot;), because it guessed what you wanted<br>
&gt; &gt; to do. If it is strongly typed, you get an error/exception that<br>
&gt; &gt; this is not valid, one cannot add a string and an integer together.<br>
&gt; &gt;<br>
&gt; &gt; Popular example of weak typing: PHP<br>
&gt; &gt; Popular example of strong typing: Scheme :)<br>
&gt;<br>
&gt; Ack! I totally reject this definition of &quot;weak&quot; vs. &quot;strong&quot; typing.<br>
&gt; Generally, the difference you&#39;re describing has nothing to do with<br>
&gt; the language&#39;s type system per se, but rather with the definition of<br>
&gt; its primitives, and how flexible or restrictive they are.<br>
<br>
</div>Ok, what would be a better definition?<br>
<div class="im"><br>
&gt; &gt; Dynamic/Static typing: is the type information enforced? Can a<br>
&gt; &gt; &quot;variable&quot; change its type? Is it possible to call a function with<br>
&gt; &gt; types that weren&#39;t considered by the implemnentor of the function?<br>
&gt; &gt; Do you need to declare the types of function arguments and return<br>
&gt; &gt; values?<br>
&gt; &gt;<br>
&gt; &gt; Popular example of dynamic typing: Scheme :)<br>
&gt; &gt; Popular example of static typing: Java<br>
&gt; &gt; Popular example of static typing with type inference: ML<br>
&gt; &gt; (type inference = you don&#39;t need to specify the types, the language<br>
&gt; &gt; finds out about them by itself)<br>
&gt;<br>
&gt; Ack! I totally disagree with this as well.<br>
&gt;<br>
&gt; A statically-typed language is one with a built-in proof system that<br>
&gt; demonstrates the impossibility of certain runtime errors.  These<br>
&gt; languages refuse to run any programs for which their proof system<br>
&gt; cannot construct such a proof.<br>
&gt;<br>
&gt; The choice of *which* errors are fenced out by the proof system is up<br>
&gt; to the designer of the type system, which makes clear distinctions<br>
&gt; between statically-typed languages and non-statically-typed languages<br>
&gt; impossible.<br>
<br>
</div>I don&#39;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>