<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: The arity of equality</title>
	<atom:link href="http://bit-player.org/2008/the-arity-of-equality/feed" rel="self" type="application/rss+xml" />
	<link>http://bit-player.org/2008/the-arity-of-equality</link>
	<description>An amateur's outlook on computation and mathematics.</description>
	<pubDate>Thu, 17 May 2012 09:36:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: Rob Mayoff</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1826</link>
		<dc:creator>Rob Mayoff</dc:creator>
		<pubDate>Fri, 24 Oct 2008 20:01:48 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1826</guid>
		<description>In Mathematica, Min[] returns Infinity and Max[] returns -Infinity.</description>
		<content:encoded><![CDATA[<p>In Mathematica, Min[] returns Infinity and Max[] returns -Infinity.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brian</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1825</link>
		<dc:creator>brian</dc:creator>
		<pubDate>Thu, 23 Oct 2008 19:01:57 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1825</guid>
		<description>Further to Aaron's and Carl Witty's comments on (max):

The last time this came up for me in a real program, I was applying max to a list of numbers representing the pairwise distances between points in a plane. In this context there is a readily available least element: 0, or perhaps 0.0. But even if I had a version of max set up so that (max) ==&#62; 0.0, I wouldn't be happy with it. Because then I'd have to check every 0.0 result to see if it came from (max) or from (max 0.0 0.0 ...). 

Of course this is an instance of a more widespread problem of distinguishing exception or error signals from normal results, but it raises the question of whether the at-least-one-argument approach might not have some practical justification, even if there's no good, principled rationale for it.</description>
		<content:encoded><![CDATA[<p>Further to Aaron&#8217;s and Carl Witty&#8217;s comments on (max):</p>
<p>The last time this came up for me in a real program, I was applying max to a list of numbers representing the pairwise distances between points in a plane. In this context there is a readily available least element: 0, or perhaps 0.0. But even if I had a version of max set up so that (max) ==&gt; 0.0, I wouldn&#8217;t be happy with it. Because then I&#8217;d have to check every 0.0 result to see if it came from (max) or from (max 0.0 0.0 &#8230;). </p>
<p>Of course this is an instance of a more widespread problem of distinguishing exception or error signals from normal results, but it raises the question of whether the at-least-one-argument approach might not have some practical justification, even if there&#8217;s no good, principled rationale for it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brian</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1824</link>
		<dc:creator>brian</dc:creator>
		<pubDate>Thu, 23 Oct 2008 18:48:19 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1824</guid>
		<description>My apologies for the primitive comment interface. I'm embarrassed by it, enough so that I have marked my calendar to attempt a Wordpress update this coming weekend. (I'm not sure the update is all that I need, but it's a necessary first step.)</description>
		<content:encoded><![CDATA[<p>My apologies for the primitive comment interface. I&#8217;m embarrassed by it, enough so that I have marked my calendar to attempt a Wordpress update this coming weekend. (I&#8217;m not sure the update is all that I need, but it&#8217;s a necessary first step.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Stay</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1823</link>
		<dc:creator>Mike Stay</dc:creator>
		<pubDate>Thu, 23 Oct 2008 17:46:53 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1823</guid>
		<description>And I meant distributive poset, not distributive category: clearly the disjoint union of all sets is not the one-element set.</description>
		<content:encoded><![CDATA[<p>And I meant distributive poset, not distributive category: clearly the disjoint union of all sets is not the one-element set.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Stay</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1822</link>
		<dc:creator>Mike Stay</dc:creator>
		<pubDate>Thu, 23 Oct 2008 17:44:40 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1822</guid>
		<description>That should have been 
- initial object is less-or-eq &#60;= every object
- terminal object is gt-or-eq &#62;= every object

(Darn parser thought it was a tag...)</description>
		<content:encoded><![CDATA[<p>That should have been<br />
- initial object is less-or-eq &lt;= every object<br />
- terminal object is gt-or-eq &gt;= every object</p>
<p>(Darn parser thought it was a tag&#8230;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Stay</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1821</link>
		<dc:creator>Mike Stay</dc:creator>
		<pubDate>Thu, 23 Oct 2008 17:42:04 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1821</guid>
		<description>- poset=partially ordered set
- toset=totally ordered set
- morphism A-&#62;B in a poset is A less-or-eq B or A divides B or A subset B etc.
- initial object is = every object in a poset
- product x is intersection (gcd) in a poset, min in a toset
- coproduct + is union (lcm) in a poset, max in a toset
- in a distributive category, x distributes over +
- also in a d.c. the product of all objects is initial and the coproduct over all objects is terminal.
- so gcd of all integers is 1, lcm of all integers is 0</description>
		<content:encoded><![CDATA[<p>- poset=partially ordered set<br />
- toset=totally ordered set<br />
- morphism A-&gt;B in a poset is A less-or-eq B or A divides B or A subset B etc.<br />
- initial object is = every object in a poset<br />
- product x is intersection (gcd) in a poset, min in a toset<br />
- coproduct + is union (lcm) in a poset, max in a toset<br />
- in a distributive category, x distributes over +<br />
- also in a d.c. the product of all objects is initial and the coproduct over all objects is terminal.<br />
- so gcd of all integers is 1, lcm of all integers is 0</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Stay</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1820</link>
		<dc:creator>Mike Stay</dc:creator>
		<pubDate>Thu, 23 Oct 2008 17:41:42 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1820</guid>
		<description>Well, crap.  There were seven more paragraphs full of examples and illustrations that got cut, with no recovery!  A warning would have been nice.  Here's the terse version:</description>
		<content:encoded><![CDATA[<p>Well, crap.  There were seven more paragraphs full of examples and illustrations that got cut, with no recovery!  A warning would have been nice.  Here&#8217;s the terse version:</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Stay</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1819</link>
		<dc:creator>Mike Stay</dc:creator>
		<pubDate>Thu, 23 Oct 2008 17:32:01 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1819</guid>
		<description>Congratulations!  You've rediscovered the idea of initial and terminal objects in a category.

If your category has at most one morphism between any two objects, then you've got a poset (partially ordered set), and we say that A is less than or equal to B if there's an arrow from A to B.  If for any pair of objects A, B it's true that either A </description>
		<content:encoded><![CDATA[<p>Congratulations!  You&#8217;ve rediscovered the idea of initial and terminal objects in a category.</p>
<p>If your category has at most one morphism between any two objects, then you&#8217;ve got a poset (partially ordered set), and we say that A is less than or equal to B if there&#8217;s an arrow from A to B.  If for any pair of objects A, B it&#8217;s true that either A</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carl Witty</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1818</link>
		<dc:creator>Carl Witty</dc:creator>
		<pubDate>Thu, 23 Oct 2008 17:17:41 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1818</guid>
		<description>@ Brian: It is certainly possible and sometimes useful to reason about the exact behavior of floating point numbers.  Granted, it's much more difficult and annoying than reasoning about exact numbers, but floating point is important; we shouldn't just give up on understanding/reasoning about it.

@ Aaron: For the answer of "What should (max) return", you have to decide without picking a domain (because the function doesn't know what context it's being called in).  Also, we usually pretend that the bignums don't actually have a smallest or largest element (but not always; see http://jwz.livejournal.com/854482.html).

@ Brian (again): I still wish these comments had a "preview" button :)</description>
		<content:encoded><![CDATA[<p>@ Brian: It is certainly possible and sometimes useful to reason about the exact behavior of floating point numbers.  Granted, it&#8217;s much more difficult and annoying than reasoning about exact numbers, but floating point is important; we shouldn&#8217;t just give up on understanding/reasoning about it.</p>
<p>@ Aaron: For the answer of &#8220;What should (max) return&#8221;, you have to decide without picking a domain (because the function doesn&#8217;t know what context it&#8217;s being called in).  Also, we usually pretend that the bignums don&#8217;t actually have a smallest or largest element (but not always; see <a href="http://jwz.livejournal.com/854482.html" rel="nofollow">http://jwz.livejournal.com/854482.html</a>).</p>
<p>@ Brian (again): I still wish these comments had a &#8220;preview&#8221; button :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1817</link>
		<dc:creator>Aaron</dc:creator>
		<pubDate>Thu, 23 Oct 2008 14:30:47 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1817</guid>
		<description>Max and min do have identity elements: The smallest and largest numbers, respectively.  These do vary by domain, of course, but so?</description>
		<content:encoded><![CDATA[<p>Max and min do have identity elements: The smallest and largest numbers, respectively.  These do vary by domain, of course, but so?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brian</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1816</link>
		<dc:creator>brian</dc:creator>
		<pubDate>Thu, 23 Oct 2008 01:49:11 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1816</guid>
		<description>@ Derek Jones: Everything depends on how numbers are represented. With inexact numbers (e.g., floating point), all bets are off. Reasoning about questions like these is pretty much hopeless except in languages that offer some kind of exact number representation. (Most Lisps have exact rationals.)</description>
		<content:encoded><![CDATA[<p>@ Derek Jones: Everything depends on how numbers are represented. With inexact numbers (e.g., floating point), all bets are off. Reasoning about questions like these is pretty much hopeless except in languages that offer some kind of exact number representation. (Most Lisps have exact rationals.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Derek Jones</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1815</link>
		<dc:creator>Derek Jones</dc:creator>
		<pubDate>Thu, 23 Oct 2008 00:20:22 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1815</guid>
		<description>I don't think it is possible to rely on the identity:

(â‰  x y) = (not (= x y))

where programming languages are concerned.

See sentences (number in larger point size in the margin) 577, 602-604, 1197, 1212, 1219 and probably more in
www.coding-guidelines.com/cbook/cbook1_1.pdf</description>
		<content:encoded><![CDATA[<p>I don&#8217;t think it is possible to rely on the identity:</p>
<p>(â‰  x y) = (not (= x y))</p>
<p>where programming languages are concerned.</p>
<p>See sentences (number in larger point size in the margin) 577, 602-604, 1197, 1212, 1219 and probably more in<br />
<a href="http://www.coding-guidelines.com/cbook/cbook1_1.pdf" rel="nofollow">http://www.coding-guidelines.com/cbook/cbook1_1.pdf</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Cowan</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1814</link>
		<dc:creator>John Cowan</dc:creator>
		<pubDate>Wed, 22 Oct 2008 23:46:32 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1814</guid>
		<description>Common Lisp's /= operator is particularly annoying because it's linearithmic (it has to sort its operands to make sure they are all different, although a hash table might be helpful), whereas all the other operators are linear.</description>
		<content:encoded><![CDATA[<p>Common Lisp&#8217;s /= operator is particularly annoying because it&#8217;s linearithmic (it has to sort its operands to make sure they are all different, although a hash table might be helpful), whereas all the other operators are linear.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Ward</title>
		<link>http://bit-player.org/2008/the-arity-of-equality#comment-1813</link>
		<dc:creator>Jim Ward</dc:creator>
		<pubDate>Wed, 22 Oct 2008 19:35:09 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=170#comment-1813</guid>
		<description>When you say (+ 3 4 5) this is an implicit (+ 0 3 4 5) because + has an identity operator, so (+3) is really 0 + 3 and (+) is 0. Some operators, like max, min, and = don't have an identity operator.</description>
		<content:encoded><![CDATA[<p>When you say (+ 3 4 5) this is an implicit (+ 0 3 4 5) because + has an identity operator, so (+3) is really 0 + 3 and (+) is 0. Some operators, like max, min, and = don&#8217;t have an identity operator.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

