Re: Operator Definition

*To*: mathgroup at christensen.cybernetics.net*Subject*: [mg985] Re: Operator Definition*From*: wagner at bullwinkle.cs.Colorado.EDU (Dave Wagner)*Date*: Thu, 4 May 1995 07:34:42 -0400*Organization*: University of Colorado, Boulder

In article <3nv9j4$9g8 at news0.cybernetics.net>, Todd Pitts <pitts at mayo.EDU> wrote: >I would like to define a shift operator similar to the derivative >for continuous time that is already built into Mma. i.e. > >Shift[ how far ][ expression head ] [ variable(s) to which shift should be applied ] > >I would also like to have it enjoy a relationship to something called S sort of >like D[] and Derivative[][][]. Any ideas on how to define it or where I could >go to learn how to do it right? I have the standard Mma reference book by >Wolfram but haven't (as of yet) been able to extract the proper way to get >what I need. > >Thanks in Advance, >Todd Pitts You can make definitions like thes in a straightforward way: In[3]:= f[a_][b_][c__] := a[b[c]] In[4]:= f[q][r][s,t,u] Out[4]= q[r[s, t, u]] Definitions such as these are called SubValues. SubValues[f] returns a list of such definitions, much like UpValues or DownValues (except that it's undocumented): In[5]:= SubValues[f] Out[5]= {Literal[f[a_][b_][c__]] :> a[b[c]]} Dave Wagner Principia Consulting (303) 786-8371 princon at csn.net http://www.csn.net/princon