RE: Pattern matching algorithm
- To: mathgroup at smc.vnet.net
- Subject: [mg46364] RE: [mg46185] Pattern matching algorithm
- From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
- Date: Mon, 16 Feb 2004 23:41:50 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
>-----Original Message----- >From: Jean-Guillaume Pyraksos [mailto:jeapy at free.fr] To: mathgroup at smc.vnet.net >Sent: Tuesday, February 10, 2004 6:06 AM >To: mathgroup at smc.vnet.net >Subject: [mg46364] [mg46185] Pattern matching algorithm > > >Where can I find a description (in symbolic form or much better in >Mathematica) of the algorithm used to interpret pattern-matching ? > >Did anybody try to translate rules: >foo[{}] = 1; >foo[{x_,L__}]=1+foo(L); > >into a function: > >foo := Function[L,If[...]] > >More generally, is there an interpreter of the Mathematica >language core >in Mathematica or Lisp ? > >Thanks, > > JGP > Jean-Guillaume, to gain more insight there certainly is the Mathematica Book and now quite a lot of very good books, e.g. from Roman E. Maeder and the forthcoming from Michael Trott to begin with. However there is no published formal operational semantics specification for the language from where you may build an interpreter (as is the case for Lisp, e.g.). Such you have to rely to (more or less educated) guesses and perhaps some experimentation. However you have to respect the borderline to not reverse engineer the product, which is clearly prohibited. Prof. Richard Fateman (http://http.cs.berkeley.edu/~fateman/) had done an attempt to model an early version of Mathematica in Common Lisp, but I guess he didn't make friends with WRI. -- Hartmut Wolf