MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Boolean type-checking

  • To: mathgroup at smc.vnet.net
  • Subject: [mg41881] Re: Re: Boolean type-checking
  • From: bobhanlon at aol.com (Bob Hanlon)
  • Date: Sun, 8 Jun 2003 06:45:44 -0400 (EDT)
  • References: <bbrpjk$j8b$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Clear[f];
f[x_, True] := x^2;
f[x_, False] := x^3-4;

f[3,#]& /@ {2<3, 2>3, 2<y}

{9, 23, f[3, 2 < y]}

Clear[g];
g[x_,_?(Element[#, Booleans]&)] := x^2;

g[3,#]& /@ {2<3, 2>3, 2<y}

{9, 9, g[3, 2 < y]}


Bob Hanlon

In article <bbrpjk$j8b$1 at smc.vnet.net>, Murray Eisenberg
<murray at math.umass.edu> wrote:

<< Subject:	Re:  Re: Boolean type-checking
From:		Murray Eisenberg <murray at math.umass.edu>
To: mathgroup at smc.vnet.net
Date:		Sat, 7 Jun 2003 04:27:32 +0000 (UTC)

I want one behavior when the variable takes value True; another when 
that variable takes value False; and an unevaluated expression returned 
when the variable takes any other value (as by improper usage of the 
function).

I do NOT want one behavior when the variable takes value True and an 
alternative in every other case!

And I still raise the question as to why Mathematica does not have a 
built-in object for {True, False}.

Jens-Peer Kuska wrote:
> Hi,
> 
> hmm, and TrueQ[] does what ?
> 
> TrueQ[expr] yields True if expr is True, and yields False otherwise.
> 
> why do you want to to know if expr is False  if you can check
> that it is true ?
> 
> Regards
>   jens
> 
> Murray Eisenberg wrote:
> 
>>When type checking the argument to a function, it's often easy to use a
>>built-in object in a pattern, e.g.:
>>
>>   f[n_Integer] := n + 1
>>
>>   g[x_?Positive] := Sqrt[x]
>>
>>But what about type-checking that an argument is Boolean, i.e., True or
>>False?  Of course it's easy enough to define a function to do this:
>>
>>   tfQ[sym_] := MemberQ[{True, False}, sym]
>>   (* or:  tfQ[sym_] := Element[sym, Booleans] *)
>>
>>   h[y_, flag_?tfQ] := ....
>>
>>But is there no NAMED, single built-in object that does what the
>>above-defined tfQ does?
>>
>>If I am correct that there is not, this may result from what seems to be
>>a fundamental language design decision, namely, that True and False are
>>just symbols -- they do have head Symbol -- rather than being of a
>>special type having, say head Boolean.  Why was that design decision made?
 >><BR><BR>


  • Prev by Date: Re: Taking a function as a parameter of a function
  • Next by Date: Re: Problem using Quotient and Mod functions with rational parameters
  • Previous by thread: Re: Re: Re: Boolean type-checking
  • Next by thread: Re: A bug?......In[1]:= Sum[Cos[x], {x, 0, Infinity, Pi}]......Out[1]= 1/2