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"