MathGroup Archive 2002

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

Search the Archive

Mathematica is NOT a functional language

  • To: mathgroup at smc.vnet.net
  • Subject: [mg37650] Mathematica is NOT a functional language
  • From: atelesforos at hotmail.com (Orestis Vantzos)
  • Date: Thu, 7 Nov 2002 06:42:37 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

[I know what you're thinking; this guy is nuts!]
Anyway, Jens keeps attacking the whole OOP-Mathematica idea based on
the single premise that 'This is a Functional Language'. He even does
it in a rather abrupt manner, which I do not appreciate.

Well guess what; Mathematica is NOT a functional language. It can
definitely be used like one.But...

a) Wolfram in the Mathematica Book seems to suggest that Mathematica
is primarily a rules-based language...in A new kind of Science this
assumption is even stronger.

b) Symbols and rules are the fundamentals of Mathematica.
Symbols have UpValues and DownValues (and OwnValues,etc. but let's
keep it simple).
It is true that an evaluation of the expression s_Symbol[args___] can
be thought of as 'the function s is applied to the subexpression
Sequence[args]'.

This is ONLY a metaphor!!!

What really happens is that the symbol s is called upon to apply its
transformation rules stored under DownValues on the expression. This
is the ONLY objective description of the process. Everything else is
an assumption on part of the programmer.

Moreover, UpValues completely throw the functional metaphor out the
window:
in this case s_Symbol[x_Symbol,rest___] is transformed not according
to the 'function' s but according to the UpValues of 'argument' x !!

So Jens, LISP is a functional language, since its fundamental
structures are function-based. Mathematica is just a darn good
simulation of a functional language. So good, that we have learned to
ignore that it is only a facade.

People like me are trying to build a different interpretation of what
all these symbols and rules are doing (or can be persuaded to do)
inside Mathematica. You look at symbols and see functions; I look and see
objects. An OOP package will only be a 'simulation', since Mathematica
is not inherently OO, but I repeat that all the talk about functional
programming in Mathematica is no better in any way.

Rules and symbols are real; the rest is a mindgame.

Regards,
Orestis Vantzos


  • Prev by Date: Re: OOP in Mathematica
  • Next by Date: Re: OO in Mathematica
  • Previous by thread: Re: Kalman Filter &Smoother, Subspace Identification
  • Next by thread: Re: Mathematica is NOT a functional language