[Haskell-cafe] Re: sections of noncommutative operators

Bill Wood william.wood3 at comcast.net
Sat Sep 9 13:41:16 EDT 2006


On Sat, 2006-09-09 at 11:17 +0100, Jón Fairbairn wrote:
   . . .
> I should think so. But does lisp have currying these days? 
> (lessp 0 1) ==> T
> but (lessp 0) would be an error, wouldn't it?

For Scheme, R5RS, Section 6.2.5 specifies that "<" and ">" take two or
more arguments, and PLT Scheme raises an exception on "(< 0)".

For Common Lisp, CLtL2 specifies for =, /=, <. >, <=, >= that "These
functions take one or more arguments" (p. 293).  "(< x1 ...)" is true
when the arguments form a monotonically increasing sequence, and clearly
a singleton sequence is monotonic.  In the CLISP implementation of
Common Lisp "(< 0)" returns "T".  BTW there is no "lessp" in CL.

As you noted, CL and Scheme do not support currying.  However, SRFI 16
(Scheme Request for Implementation, a quasi-standard mechanism for
introducing extension libraries into Scheme) provides a "Notation for
Specializing Parameters without Currying" as a syntactic sugar for
nested lambdas.

 -- Bill Wood



More information about the Haskell-Cafe mailing list