[Date Index]
[Thread Index]
[Author Index]
Re: Mathematica and Lisp
*To*: mathgroup at smc.vnet.net
*Subject*: [mg120031] Re: Mathematica and Lisp
*From*: Richard Fateman <fateman at cs.berkeley.edu>
*Date*: Tue, 5 Mar 2013 22:14:21 -0500 (EST)
*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com
*Delivered-to*: l-mathgroup@wolfram.com
*Delivered-to*: mathgroup-newout@smc.vnet.net
*Delivered-to*: mathgroup-newsend@smc.vnet.net
*References*: <kh4d3m$6vs$1@smc.vnet.net>
On 3/5/2013 1:15 AM, Bill Rowe wrote:
> Clearly, the current design isn't compatible with your desired
> workflow. But that doesn't necessarily equate to "bad design".
> It is less effort to look up the meaning of @@@ as described in
> Mathematica than for someone unfamiliar with C to determine what
> t=log(++u)+b will do.
To say that something else is even more inconvenient does not equate
with good design.
I think that using C documentation for looking up "++" is a lot
easier than say, noodling. (see the
article on noodling in wikipedia). That doesn't make the C
documentation "user friendly" or whatever descriptive term
you might prefer.
>
> If you don't care to remember the meaning of @@@ you are
> certainly under no obligation to do so or even use this
> notation. If it makes more sense to you, simply do
>
> Apply[f, expr, {1}]
>
> rather than
>
> f@@@expr
Frankly I've never found an opportunity to use Apply with a 3rd
argument (restricting its "level"). Perhaps I'm blinded by my
experience with Lisp, in which apply also exists but does not
have a level argument. It is just (apply function args)
>
> The only advantage of @@@ is the saving of a few keystrokes and
> perhaps improved readability for someone familiar with the
> meaning of @@@.
And decreased readability for someone unfamiliar with it and who
tries ? @@@ to get documentation.
>
>> I've mentioned it previously. But that's really a different point.
>> There are many 3-character non-alphabet sequences. How many of them
>> "mean" anything to you?
>
> Several. But then I use Mathematica extensively. Short cuts like
> @@@ are convenient for me. Consequently, I use them rather
> frequently and don't have any problem recalling their meaning.
You use @@@ frequently? Or other shortcuts? I use many, such
as +, :=, ->, /., //, @ , ;. which are verbose otherwise, and
at least for the first few, are already familiar. That is, x+y+z
seems to be handy rather than Plus[x,y,z]. This compares to Lisp,
slightly longer at (+ x y z)
>> As for @@@ being explained multiple times in this newsgroup, maybe
>> you should wonder why
>
>> (a) it should have to be explained even once
>
> Since it is not universal, it follows there needs to be at least
> one explanation somewhere. And since quite a few posters here
> haven't read much of the documentation, it follows strings of
> characters such as @@@ won't be familiar to them prompting a
> request for an explanation.
Maybe if ?@@@ worked, they won't have to ask.
>
>> (b) why it should have to be explained multiple times.
>
> No matter how many times it is explained, there will always be
> another new user encountering @@@ or some other short cut for
> the first time prompting a new request for explanation.
The proper response might be, type ?@@@
>
> The existence of multiple explanations in this forum for @@@
> isn't an indication of "bad design".
Actually, I disagree. I think that is supportive evidence
of bad design that repeated explanations are needed.
It is simply due to the
> fact Mathematica uses certain strings as short cuts that don't
> have meaning outside of Mathematica. The same situation exists
> for virtually any programming language.
Sure. are they documented? do they make sense after being explained
once? (I think that u++ and ++u make sense after one explanation.)
That is for most if not
> all programming languages you can find some sequence of
> characters that have specific meaning in that language but not elsewhere.
Yes, but not so many, nor do they step on each others' feet quite
so much. e.g. .3/.3->4
>
> Your comments here and elsewhere in this thread seem to amount
> to Mathematica is not easy for a new or casual user to use
> proficiently. If so, I agree.
I think you read me correctly.
Though I would go further and say it is not easy for a person
attempting to make serious use, who attempts to use his/her
mathematical background and general knowledge of other
programming languages and (say) computer arithmetic to
make generalizations of how Mathematica should behave.
(simple example: why does Mathematica reverse the order
of arguments to arctan of 2 args?)
But I believe the same is true of
> many other if not most other programming languages.
But not all?
I try to make comparisons only with languages I am
familiar with.
RJf
>
>
Prev by Date:
**Alternative to Table**
Next by Date:
**Problem in solving Differential Equation**
Previous by thread:
**Re: Mathematica and Lisp**
Next by thread:
**Re: Mathematica and Lisp**
| |