Date: Mar 5, 2013 10:13 PM
Author: Richard Fateman
Subject: Re: Mathematica and Lisp

On 3/5/2013 1:16 AM, David Bailey wrote:
<snip>
>
> It is important to realise that anyone can understand any expression
> involving operators by using Hold and FullForm:
>
> (f @@@ g) // Hold // FullForm
>
> Hold[Apply[f,g,List[1]]]


I, of course, would suggest that one NOT use
(f@@@g)//Hold//FullForm

but

FullForm[Hold[f@@@g]]

1. My form is clearer, not using any additional mysterious-to-the-novice
infix operations like //.

2. It is even shorter, using 2 fewer characters, as written.

3. It apparently requires less thought, because even you were, at least
for the moment, unsure of the precedence of // and so you inserted the
entirely unnecessary () around f@@g.

4. There is really no question of the precedence in my form.

5. The whole notion of a novice being required to know about
both Hold and FullForm in order to get an explanation for @@@
(or alternatively type f@@@g, select @@@ and hit F1),
(or alternatively type bare on a line @@@ and hit F1 -- a solution
that I found that did not require use of a mouse -- an improvement!)
is all too much.

I have not really heard an explanation for ?@@@
failing except that it is expected to fail by cognoscenti. My favorite
video commentary, previously cited, about such an approach
to the equivalence of bugs to features is "I meant to do that"...

http://www.youtube.com/watch?v=vJXU7EVXs2A

RJF