On 1 Feb 2005, at 05:20, Cale Gibbard wrote:
Statements like "a < b < c" are perfectly clear to everyone present, and if anyone has a type error in their head when reading that which they can't get past, they are most likely just being stubborn.
Actually, that's another nice example of what I was talking about. If booleans are ordered, as they are in Haskell (namely, instance Ord Bool), then this is not perfectly clear at all - at least, it means something different from what I think you think it means.
The expression "(2 < 1) < True" is syntactically valid and type correct in Haskell, and evaluates to True (because False < True). Similarly, "(True < False) < True" is True, whereas "True < (False < True)" is False, so < is not associative. If you want "a < b < c" to mean "(a < b) && (b < c)" but "a + b + c" to mean "(a + b) + c", you're going to have to treat "<" differently from "+", which goes against the spirit of considering them both simply functions.
(I'm talking here of course in the context of a programming language, where the original question was asked and where consistency is important; you can have as many inconsistencies as you like on a blackboard.)
On Mon, 31 Jan 2005 13:59:58 +0100, Benjamin Franksen <[EMAIL PROTECTED]> wrote:
(Witness "sigma sin(x) dx", involving a term sin(x) and a dummy variable x, rather than the more logical "sigma sin", involving the function.)
BTW, 'sigma sin' is not a function.
I'm missing something here. I don't have an integral symbol to hand, which is what I meant by the "sigma", so perhaps I was unclear. I'd say the integral of the sine function is itself a binary function, taking lower and upper bounds as arguments.
Jeremy
[EMAIL PROTECTED] Oxford University Computing Laboratory, TEL: +44 1865 283508 Wolfson Building, Parks Road, FAX: +44 1865 273839 Oxford OX1 3QD, UK. URL: http://www.comlab.ox.ac.uk/oucl/people/jeremy.gibbons.html
_______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell