Re: String[bring] vs "bring"
- To: mathgroup at smc.vnet.net
- Subject: [mg59377] Re: [mg59350] String[bring] vs "bring"
- From: stephen layland <layland at wolfram.com>
- Date: Sun, 7 Aug 2005 03:47:10 -0400 (EDT)
- References: <200508060530.BAA01232@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
and thus spake Kristen W Carlson [2005.08.06 @ 01:00]:
> Hi,
>
> Question: What is the difference between "bring" and String[bring] ?
> What is the utility of making them different?
Strings in Mathematica are Atoms. String[blah] is not really the full
form of "blah", just as Integer[2] is not the full form of 2 .
Everything in Mathematica falls into one of two categories:
* normal expression : h[elems...]
* atomic expression : atom
Obviously, normal expressions are built out of atoms. Strings and
numbers, (Reals, Integer,Complex) are atoms.
If "blah" was really String[blah], then it would no longer be an atomic
expression.
Pattern matching still needs to have a way of matching atomic
expressions. For normal expressions, Head[expr] returns just that:
Head[f[2]] => f
Head[x+y] => Plus
Head[{a,b}] => List
For atomic expressions, Head[atom] returns atom type:
Head[2] => Integer
Head[234.32] => Real
Head[2+4I] => Complex
Head["blah"] => String
This allows one to make patterns like s_String, or x_Integer, etc.
--
/*------------------------------*\
| stephen layland |
| Documentation Programmer |
| http://members.wri.com/layland |
\*------------------------------*/
- References:
- String[bring] vs "bring"
- From: Kristen W Carlson <carlsonkw@gmail.com>
- String[bring] vs "bring"