<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Disqus - Latest Comments for Keithb</title><link>http://disqus.com/people/de26a1a4d0a97e297f3e5be32e07449f/</link><description></description><language>en</language><lastBuildDate>Tue, 30 May 2006 11:34:02 -0000</lastBuildDate><item><title>Re: Three Lefts Make a Right: The Type Declaration Paradox</title><link>http://osteele.disqus.com/three_lefts_make_a_right_the_type_declaration_paradox/#comment-4880937</link><description>Colour me baffled (does that make me one of the smart people?)&lt;br&gt;&lt;br&gt;Of the approaches you present exactly one will definitely prevent the function body being executedwith ill-typed arguments by any client code: assertions.&lt;br&gt;&lt;br&gt;Variable names, comments and structured comments will not provent client code asking for gcd(-7.62, 2+i), but they will prompt any human who's read the declaration of gcd to not casually write code that would do that, which seems like a win. This is the way programmers in languages with dynamic typing get used to thinking.&lt;br&gt;&lt;br&gt;Of your proposed aproaches exactly one tells the human programmer and the client code a &lt;em&gt;direct lie&lt;/em&gt; about gcd(): type declaration. It does not merely "[lose] the information that a and b are non-negative", it asserts the untruth that they can be negative. How is this any sort of benefit?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Keithb</dc:creator><pubDate>Tue, 30 May 2006 11:34:02 -0000</pubDate></item></channel></rss>