[racket] Boolean expressions [Was: static variables question]

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sun Feb 19 20:16:17 EST 2012

On Sun, Feb 19, 2012 at 7:10 PM, Neil Toronto <neil.toronto at gmail.com> wrote:
> On 02/19/2012 06:05 AM, Robby Findler wrote:
>> On Sun, Feb 19, 2012 at 12:30 AM, Gary Baumgartner<gfb at cs.toronto.edu>
>>  wrote:
>>> On a more productive note: in Racket code I define and use 'implies' a
>>> lot,
>>>  often conjoined, for predicates. It's mainly of declarative value, which
>>> is
>>>  perhaps why it's uncommon in implementation despite how common it is in
>>>  specification. And for boolean expressions in general I also use
>>> 'neither'.
>>>  Are these something that others [would] use and so could be added to
>>> Racket's
>>>  library?
>> Seems to me adding implies, nand, and nor to racket/bool is a good idea.
>> Let me know if you disagree (and if you disagree after I've already
>> committed, it is a simple thing to drop the commit or change it).
> I've occasionally written my own `implies', but never make it shortcut like
> `and' and `or'. Speaking of which, would it handle more than two arguments?
> One? Zero? What kind of associativity would be appropriate?

The version I checked in shortcuts in an implication-appropriate way
(if the first argument is #f). I think the convention (due to
functions and currying) is pretty well established that it associates
to the right. So that's what the version I checked in does for the 3+
argument case. I didn't see something reasonable for the 0 or 2-ary
case so it doesn't handle them.

> Bwahaha.


I'm still pondering those questions for xor. :)


Posted on the users mailing list.