Re: BitAnd[True,False]
- To: mathgroup at smc.vnet.net
- Subject: [mg131746] Re: BitAnd[True,False]
- From: Itai Seggev <itais at wolfram.com>
- Date: Fri, 27 Sep 2013 02:29:12 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- References: <20130925063645.E297C6A74@smc.vnet.net>
On Thu, Sep 26, 2013 at 03:44:04AM -0400, Alan G Isaac wrote: > On 9/25/2013 4:24 AM, John Fultz wrote: > > I'm not sure why you might have expected this to work. It > > wouldn't occur to me at all that bitwise operations would > > have anything to do with logical truth tables (unless > > those tables were expressed in values of 0 and 1). > > Not expect, but rather hope. And why? > Because I would hope bitwise operations would treat > True and False like 1 and 0. There is a function to do this; it is called Boole. In[127]:= Boole[{True, False}] Out[127]= {1, 0} > (E.g., in Python, True > and False behave this way, since bool is a subtype > of int.) That is common in many languages; it is not the case in Mathematica. For example, If[1, a,b,c] will return c (neither True nor False), not a, and I think that is quite correct and useful. I would quite suprised if some function decided to treat True the same as 1 without conversion > Let me put it this way: > what else might one intend by BitAnd[True,False]? I would expect it to return an integer, not True or False, given that it is called BitAnd. > To AND values in two binary (True,False) matrices, > I think we must do something like: > MapThread[And, {m1, m2}, 2] > Being able to just BitAnd[m1,m2] would be nicer. > But in any case, thank you for the helpful > explanation of the behavior that puzzled me. > > Cheers, > Alan Isaac > > -- Itai Seggev Mathematica Algorithms R&D 217-398-0700
- References:
- BitAnd[True,False]
- From: Alan <alan.isaac@gmail.com>
- BitAnd[True,False]