Boolean type-checking
- To: mathgroup at smc.vnet.net
- Subject: [mg41788] Boolean type-checking
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Thu, 5 Jun 2003 07:31:30 -0400 (EDT)
- Organization: Mathematics & Statistics, Univ. of Mass./Amherst
- Reply-to: murray at math.umass.edu
- Sender: owner-wri-mathgroup at wolfram.com
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?
--
Reply to "REPLY TO" address and NOT to the "FROM" address!!
Otherwise I will never see your reply!!!!!!!!!!!!!!!!!!!!!!
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305