Re: Types in Mathematica

*To*: mathgroup at smc.vnet.net*Subject*: [mg62878] Re: Types in Mathematica*From*: Jon Harrop <usenet at jdh30.plus.com>*Date*: Tue, 6 Dec 2005 23:12:18 -0500 (EST)*References*: <200511120833.DAA19252@smc.vnet.net> <43762529.7060603@math.umass.edu> <dl8s4g$n41$1@smc.vnet.net> <dl980q$r2a$1@smc.vnet.net> <200511140805.DAA00041@smc.vnet.net> <dlc96b$m81$1@smc.vnet.net> <dlhibt$5ki$1@smc.vnet.net> <dlkc76$pq0$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

John Doty wrote: > In[10]:= x_[s] ^:= Sin[x] > > In[11]:= Pi[s] > > Out[11]= 0 > > Try defining an "argument" that operates on its "function" in any other > language. Of course few Mathematica programmers would do anything this > silly, and the Mathematica kernel contains many "built in functions" > that conform to the functional convention. Nevertheless, you can go off > the functional/procedural path in all sorts of interesting ways in > Mathematica, and these ways really don't have close analogs in other > languages. In OCaml, that could be written: let rewrite = function Apply(x, [Symbol "s"]) -> Apply(Sin, [x]) The difference is only that the underlying representation of an expression is exposed: f[x] is: Apply(Symbol "f", [Symbol "x"]) -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/ocaml_for_scientists/chapter1.html