|
|
Up |
|
|
  |
Author: xahleexahlee Date: May 7, 2008 16:13
I'd like to introduce a blog post by Stephen Wolfram, on the design
process of Mathematica. In particular, he touches on the importance of
naming of functions.
• Ten Thousand Hours of Design Reviews (2008 Jan 10) by Stephen
Wolfram
http://blog.wolfram.com/2008/01/10/ten-thousand-hours-of-design-reviews/
The issue is fitting here today, in our discussion of “closure”
terminology recently, as well the jargons “lisp 1 vs lisp2” (multi-
meaning space vs single-meaning space), “tail recursion”, “currying”,
“lambda”, that perennially crop up here and elsewhere in computer
language forums in wild misunderstanding and brouhaha.
|
| Show full article (5.43Kb) |
|
| | 60 Comments |
|
  |
Author: Bruce C. BakerBruce C. Baker Date: May 7, 2008 16:53
gmail.com> wrote in message
news:f4abdb41-be28-4628-a2ad-7fb6cea6ed65@u12g2000prd.googlegroups.com...
[...]
(for example, Perl's naming heavily relies on unix culture (grep,
pipe, hash...), ...
"hash" + "pipe"? Ahhhhh, /no wonder/ Perl is the syntactic mishmash it is!
;-)
|
| |
|
| | no comments |
|
  |
Author: Kyle McGivneyKyle McGivney Date: May 7, 2008 19:14
> • Module, Block, in Mathematica is in lisp's various “let*”. The
> lisp's keywords “let”, is based on the English word “let”. That word
> is one of the English word with multitudes of meanings. If you look up
> its definition in a dictionary, you'll see that it means many
> disparate things. One of them, as in “let's go”, has the meaning of
> “permit; to cause to; allow”. This meaning is rather vague from a
> mathematical sense. Mathematica's choice of Module, Block, is based on
> the idea that it builds a self-contained segment of code. (however,
> the choice of Block as keyword here isn't perfect, since the word also
> has meanings like “obstruct; jam”)
If the purpose of let is to introduce one or more variable bindings,
then I don't see how changing to block or module would improve
anything. I've always found it fairly intuitive to parse (let ((x
5)) ...) to "let x be five". Additionally, replacing let with the
synonyms you provided would approximately yield "permit x to be five"
or "allow x to be five". In my mind you have constructed an argument
in favor of let here (obviously it's better than block, because
nobody's going to come along and be confused about whether let will
"obstruct" or "jam" them :)
|
| Show full article (1.33Kb) |
| no comments |
|
  |
Date: May 7, 2008 22:05
On Wed, 7 May 2008 16:13:36 -0700 (PDT), "xahlee@ gmail.com"
gmail.com> wrote:
>I'd like to introduce a blog post by Stephen Wolfram, on the design
>process of Mathematica. In particular, he touches on the importance of
>naming of functions.
>
> Ten Thousand Hours of Design Reviews...
|
| Show full article (7.95Kb) |
| no comments |
|
  |
Author: Jürgen ExnerJürgen Exner Date: May 7, 2008 23:05
George Neuner comcast.net> wrote:
>On Wed, 7 May 2008 16:13:36 -0700 (PDT), "xahlee@ gmail.com"
> gmail.com> wrote:
+-------------------+ .:\:\:/:/:.
| PLEASE DO NOT | :.:\:\:/:/:.:
| FEED THE TROLLS | :=.' - - '.=:
| | '=(\ 9 9 /)='
| Thank you, | ( (_) )
| Management | /`-vvv-'\
+-------------------+ / \
| | @@@ / /|,,,,,|\ \
| | @@@ /_// /^\ \\_\
@x@@x@ | | |/ WW( ( ) )WW
\||||/ | | \| __\,,\ /,,/__
\||/ | | | jgs (______Y______)
/\/\/\/\/\/\/\/\//\/\\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
==============================================================
jue
|
| |
| no comments |
|
  |
Author: John ThingstadJohn Thingstad Date: May 8, 2008 01:05
På Thu, 08 May 2008 04:14:35 +0200, skrev Kyle McGivney
gmail.com>:
>> • Module, Block, in Mathematica is in lisp's various “let*”. The
>> lisp's keywords “let”, is based on the English word “let”. That word
>> is one of the English word with multitudes of meanings. If...
|
| Show full article (1.66Kb) |
| no comments |
|
  |
Author: kodifikkodifik Date: May 8, 2008 01:12
> | PLEASE DO NOT | :.:\:\:/:/:.:
> | FEED THE TROLLS | :=.' - - '.=:
I don't think Xah is trolling here (contrary to his/her habit)
but posing an interesting matter of discussion.
Don't know to which point it fits, but I would like to do some rather
novel comment on operator naming:
As a non native english speaker, the first time I ever encountered the
word "if" was when learning to program. The same can be said of the
other words (for, then, else...) This caused my brain to adscribe them
meanings completely outside the context of everyday language. My point
is that perhaps this is advantageous. So, contrary to tradition (which
considers a desirable goal to write programs as close as possible to
everyday english), I found convenient that programming languages use
words different from the words of my native tongue. I suspect that is
why car and cdr have caught on vs. first end rest.
|
| |
| no comments |
|
  |
Author: Robert Maas, http://tinyurl.com/uh3tRobert Maas, http://tinyurl.com/uh3t Date: May 8, 2008 03:25
> From: "xah...@ gmail.com" gmail.com>
> the importance of naming of functions.
I agree, that's a useful consideration in the design of any system
based on keywords, such as names of functions or operators.
(I'm not using "keyword" in the sense of a symbol in the KEYWORD package.)
> the naming in Mathematica, as Stephen Wolfram implied in his blog
> above, takes the perspective of naming by capturing the essense, or
> mathematical essence, of the keyword in question.
For concepts adapted from mathematics, that naming meta-convention makes sense.
For concepts adapted from data-processing, it's not so clearly good.
> lambda, widely used as a keyword in functional languages, is
> named just Function in Mathematica.
That makes sense, but then what does Mathematica call the special
operator which Common Lisp calls Function? Or is that not provided,
and the programmer must case-by-case handcode what they really mean?
(function foo) == (symbol-function 'foo) ;so FUNCTION not really needed there
(function (lambda (x) (+ x y)) ;y is a lexical variable to be encapsulated
; into the resultant closure
How would you do something like that in mathematica?
|
| Show full article (4.53Kb) |
| 1 Comment |
|
  |
Author: LewLew Date: May 8, 2008 03:52
>> | PLEASE DO NOT | :.:\:\:/:/:.:
>> | FEED THE TROLLS | :=.' - - '.=:
>
> I don't think Xah is trolling here (contrary to his/her habit)
> but posing an interesting matter of discussion.
Interesting is in the eye of the beholder. After you'd read the same recycled
crud from certain posters again and again, it because trollish spam.
--
Lew
|
| |
| no comments |
|
  |
|
|
  |
Author: LewLew Date: May 8, 2008 03:53
> I have my own gripe against regular expressions ("regex" for short).
> I hate the extremely terse format, with horrible concoctions of
> escape and anti-escape magic characters, to fit within Unix's
> 255-character limit on command lines, compared to a nicely
> s-expression nested notation that would be possible if regex hadn't
> entrenched itself so solidly.
This is all very interesting, but not Java.
--
Lew
|
| |
| no comments |
|
|
|
|