MathGroup Archive 2001

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: OOP in Mathematica

  • To: mathgroup at
  • Subject: [mg29194] Re: OOP in Mathematica
  • From: "Drago Ganic" <drago.ganic at>
  • Date: Sat, 2 Jun 2001 17:56:05 -0400 (EDT)
  • References: <b3AP6.274$> <9f2g4c$878$> <9f4euh$ab2$> <9f7j0e$grg$>
  • Sender: owner-wri-mathgroup at


I think that OO  is conceptually wrong because in this philosophy functions are below objects ("everything is an object" and an object has attached functions to it ...) 

But these two elementary things are *on the same level*. An that's what is done in Mathematica when it is said that "everything is an expression".

I do think that we can interpret the world as there are objects and functions and the wonderful thing symbolic programming has thought me is that they can be presented in a unified way: 

        head [arg1, arg2, ... ] 

Often a thing is either an "object" or a "function": 

    Complex [a, b]
    Sin [Pi] 

but sometimes the distinction is not so clear as with 
(when it don't gets  numerically evaluated): 


So I think we should have a pool of "functions" like f, g ,... and a pool of "objects" like x, y, ... and we should combine them in something like f(x). In mathematics we will have situations like F(f) but usually we can distinguish between these two type of things. 

And that's it. And that's done in Mathematica except that overloading is not used as much as it should have so we have the commands  NotebookCreate, NotebookDelete and so on.

Just my opinion :-)

Greetings from Croatia,
Drago Ganic

"Orestis Vantzos" <atelesforos at> wrote in message news:9f7j0e$grg$1 at
> That's exactly why normal OOP philosophy can't work in Mathematica...methods
> and instance variables (in Maeder's terminology) can not be clearly
> distinguished. One would rather associate a number of symbols with an
> objects and allow the user to define their functionality.
> Orestis
> "John Doty" <jpd at> wrote in message news:9f4euh$ab2$1 at
> > In article <9f2g4c$878$1 at>, "Jens-Peer Kuska"
> > <kuska at> wrote:
> >
> > > The head *is* the function call!
> >
> > No, the head is just the head. If a particular head is associated with
> > replacement rules that work like a function, you might want to call that
> > head a "function". On the other hand, you can invert function and argument
> > if you wish:
> >
> > In[33]:= x_[sin]^:=Sin[x]
> >
> > In[34]:= Pi[sin]
> >
> > Out[34]= 0
> >
> > To be sure, most rules mimic function evaluation and/or sequential flow of
> > control. This makes Mathematica look more like a "normal" programming
> > language than it really is. It's really just a convention: Mathematica can
> > also define bizarre rules like the ones above.
> >
> > --
> > | John Doty "You can't confuse me, that's my job."
> > | Home: jpd at
> > | Work: jpd at
> >

  • Prev by Date: repeating decimals
  • Next by Date: Classifying by Inequalities???
  • Previous by thread: Re: OOP in Mathematica
  • Next by thread: Re: OOP in Mathematica