Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: Mathematica and Lisp
Replies: 83   Last Post: Mar 5, 2013 10:12 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Richard Fateman

Posts: 1,402
Registered: 12/7/04
Re: Mathematica and Lisp
Posted: Jan 25, 2013 1:33 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On 1/22/2013 8:18 PM, David Bailey wrote:
....
(regarding Lisp)

> Having 3 types of brackets, definitely helps to discern the structure,
> even with indentation.

Some lisp implementations allowed for the use of ] to terminate all
open parentheses up to the prior [. It is possible to alter the meaning
of characters in ANSI Common Lisp, so almost anything can be implemented.

Perhaps LISP could have been improved by
> permitting all three, to be used interchangeably so long as they paired
> correctly.

I expect that this can be done, and maybe already exists. Mathematica
does not allow the nesting of ([{}]) except for special uses, so
building up a big expression as you type is probably about as error
prone as Lisp, if not quite as unfamiliar. Note that f(a,g(b),c) has
as many parens as the Lisp (f a (g b) c) and that using square
brackets as f[a,g[b],c] is not much different. Also note that
the highlighting of the matching left parenthesis is done in
Mathematica's current front end. A similar feature is available in Lisp
editors.
>
> Unless the infix front end distinguished reliably between code and data
> (which I don't think it could, in general),


This is generally considered a benefit for advanced programming. On the
other hand, most programmers spend their time composing programs for
which it is pretty clear what is a program. Of the various types of
data (array, vector, string, hash table, file descriptor, integer,
float, complex, rational, ..., list ...) only one could possibly be
a program, namely list. So it is perhaps not such a big problem as
you might think.

you would still have a
> problem - ideally you want to see
>
> sin(a)
>
> but
>
> (apples oranges pears)
>
> Also, if you print out an expression, you want the first format, and if
> you print a list, you want the second.


Actually, the notation (sin a) instead of Sin[a] is pretty much of
a wash.
If you print a fragment of code,
> you may want to see a mixture of both styles. Extra types of brackets
> make all that simple.

Or you may prefer uniformity. E.g. compare:

Mathematica Input, Mathematica FullForm Lisp

a+b+c Plus[a,b,c] (+ a b c)
a^2 Power[a,2] (expt a 2)
Sin[x] Sin[x] (sin x)

Also note that Mathematica has abandoned infix for such well known syntax as
the "do" loop. This would ordinarily look like

for i=1 to 10 by 2 do f(i).... but is instead Do[f[i],{i,1,10,2}].
That's pretty close to (dotimes (f i) i 1 10 2).
Incidentally, common lisp allows
(loop for i from 1 to 10 step 2 do (f i)) or some such thing.
[I don't use it much myself :)





>>
>
>> I rarely write programs of any length in Mathematica, because (as I've
>> said) I hold the programming language in generally low regard.
>> On the other hand I am pretty much familiar with the language because
>> I wrote a parser for it (in Lisp) some time ago, and in my experience
>> one of the best ways to really learn a language is to "implement" it.

>
> Did you implement it, or just parse it?


Certainly not all the application. Parser + pattern matcher + some
simple application programs like differentiation, integration. numerical
evaluation done differently; display. See my web page for free download.
>
> I do agree about learning a language by implementing it. Two of us once
> wrote a Fortran compiler in Fortran (!!), and bootstrapped it. It was
> widely used on Prime computers. One of the things I discovered, was that
> the old issue about Fortran's context sensitive grammar, was an utterly
> trivial problem!


I think there is a standard hack to recognize a "DO" statement by the
fact that there is a comma not enclosed in parentheses. Check for this
and handle the card differently. There are Fortran compilers written in
Lisp; in fact most compiler implementations depend upon an intermediate
expression tree language which requires that they include internally
a subset of what some people would recognize as Lisp -- for building
and traversing trees.
>>
>>
>>
>> If I were using a computer to do something that required correct answers
>> for, say, life safety, like building a bridge, I would follow WRI's
>> advice and not use Mathematica.
>> (see http://www.wolframalpha.com/termsofuse/)

>
> So have you found the perfect language - one in which none of the
> functions contain imperfections, and yet which offers anything
> approaching the computational sophistication of Mathematica?


I think that perfection depends on the context. Though they are
not my areas of primary interest, I suspect the Mathematica is pretty
good for some kinds of graphics (though I find it clumsy sometimes,
that is probably my unfamiliarity with the nuances of Graphics objects),
and maybe linear cellular automata.
There seems to be a fairly strong consensus that for numerical
programming there are other competitors favored in engineering schools.

>
> BTW, I wouldn't be surprised if a lot of safety critical code isn't
> written in Fortran!


I expect that is true. It would be a LOT easier to formally prove the
correctness of a FORTRAN program than a Mathematica program. And there
is even a history of proving FORTRAN compilers correct. I daresay no
proof that Mathematica is correct is likely to appear any time soon.

RJF

>
> David Bailey
> http://www.dbaileyconsultancy.co.uk
>
>
>
>






Date Subject Author
1/11/13
Read Mathematica and Lisp
amzoti
1/12/13
Read Re: Mathematica and Lisp
Richard Fateman
1/12/13
Read Re: Mathematica and Lisp
David Bailey
1/14/13
Read Re: Mathematica and Lisp
Richard Fateman
1/14/13
Read Re: Mathematica and Lisp
David Bailey
1/16/13
Read Re: Mathematica and Lisp
Richard Fateman
1/18/13
Read Re: Mathematica and Lisp
David Bailey
1/22/13
Read Re: Mathematica and Lisp
Richard Fateman
1/22/13
Read Re: Mathematica and Lisp
David Bailey
1/24/13
Read Re: Mathematica and Lisp
Richard Fateman
1/25/13
Read Re: Mathematica and Lisp
Richard Fateman
1/26/13
Read Re: Mathematica and Lisp
Murray Eisenberg
1/26/13
Read Re: Mathematica and Lisp
Murray Eisenberg
1/26/13
Read Re: Mathematica and Lisp
W. Craig Carter
1/16/13
Read Re: Mathematica and Lisp
Murray Eisenberg
1/16/13
Read Re: Mathematica and Lisp
Richard Fateman
1/16/13
Read Re: Mathematica and Lisp
David Bailey
1/18/13
Read Re: Mathematica and Lisp
Murray Eisenberg
1/31/13
Read Re: Mathematica and Lisp
Noqsi
2/2/13
Read Re: Mathematica and Lisp
Daniel Lichtblau
2/3/13
Read Re: Mathematica and Lisp
Richard Fateman
2/2/13
Read Re: Mathematica and Lisp
Richard Fateman
2/3/13
Read Re: Mathematica and Lisp
David Bailey
2/5/13
Read Re: Mathematica and Lisp
Richard Fateman
2/6/13
Read Re: Mathematica and Lisp
David Bailey
2/6/13
Read Re: Mathematica and Lisp
Richard Fateman
2/3/13
Read Re: Mathematica and Lisp
Andrzej Kozlowski
2/5/13
Read Re: Mathematica and Lisp
Richard Fateman
2/6/13
Read Re: Mathematica and Lisp
David Bailey
2/8/13
Read Palette problem with Feynman slash notation
Dave Snead
2/5/13
Read Re: Mathematica and Lisp
Bill Rowe
2/6/13
Read Re: Mathematica and Lisp
Joseph Gwinn
2/3/13
Read Re: Mathematica and Lisp
Matthias Bode
2/3/13
Read Re: Mathematica and Lisp
Noqsi
2/6/13
Read Re: Mathematica and Lisp
Richard Fateman
2/6/13
Read Re: Mathematica and Lisp
David Bailey
2/6/13
Read Re: Mathematica and Lisp
mathgroup
2/4/13
Read Re: Mathematica and Lisp
Alex Krasnov
2/6/13
Read Re: Mathematica and Lisp
Noqsi
2/8/13
Read Re: Mathematica and Lisp
Richard Fateman
2/9/13
Read Re: Mathematica and Lisp
János Löbb
2/9/13
Read Re: Mathematica and Lisp
Richard Fateman
2/10/13
Read Re: Mathematica and Lisp
michael
2/10/13
Read Re: Mathematica and Lisp
Bill Rowe
2/8/13
Read Re: Mathematica and Lisp
Andrzej Kozlowski
2/8/13
Read Re: Mathematica and Lisp
Noqsi
2/9/13
Read Re: Mathematica and Lisp
Richard Fateman
2/10/13
Read Re: Mathematica and Lisp
David Bailey
2/9/13
Read Re: Mathematica and Lisp
Matthias Bode
2/15/13
Read Re: Mathematica and Lisp
Noqsi
2/17/13
Read Re: Mathematica and Lisp
David Bailey
2/18/13
Read Re: Mathematica and Lisp
Joseph Gwinn
2/18/13
Read Re: Mathematica and Lisp
David Park
2/22/13
Read Re: Mathematica and Lisp
Richard Fateman
2/23/13
Read Re: Mathematica and Lisp
David Bailey
2/23/13
Read Re: Mathematica and Lisp
Richard Fateman
2/25/13
Read Re: Mathematica and Lisp
David Bailey
2/26/13
Read Re: Mathematica and Lisp
Richard Fateman
2/27/13
Read Re: Mathematica and Lisp
Bill Rowe
2/27/13
Read Re: Mathematica and Lisp
Richard Fateman
3/2/13
Read Re: Mathematica and Lisp
Bill Rowe
3/3/13
Read Re: Mathematica and Lisp
Richard Fateman
3/3/13
Read Re: Mathematica and Lisp
Noqsi
3/5/13
Read Re: Mathematica and Lisp
Richard Fateman
3/5/13
Read Re: Mathematica and Lisp
Vince Virgilio
3/3/13
Read Re: Mathematica and Lisp
Bob Hanlon
1/16/13
Read Re: Mathematica and Lisp
Noqsi
1/16/13
Read Re: Mathematica and Lisp
Richard Fateman
1/18/13
Read Re: Mathematica and Lisp
Noqsi
2/23/13
Read Re: Mathematica and Lisp
Dr. Peter Klamser
2/25/13
Read Re: Mathematica and Lisp
Richard Fateman
2/26/13
Read Re: Mathematica and Lisp
Noqsi

Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.