From: Robert Maas, http://tinyurl.com/uh3t
Subject: OT: To Duane Rettig of franz.com
Date: 
Message-ID: <rem-2008apr26-005@yahoo.com>
Hey, ever since I first noticed you posting in this newsgroup, I
wondered about your name, if you were related to the child-actor
who played in Lassie and The 5,000 Fingers of Dr. T. Today I
finally looked in IMDB to verify those roles, and read his bio, and
was sad to learn he was dead years ago. But given this fact:
   Linkname: Tommy Rettig - Biography
        URL: http://us.imdb.com/name/nm0720568/bio
   For the last several years of his life Tom was a successful software
   developer. His products in Dbase and FoxPro were used by hundreds of
   other developers.
now with the S/W connection I seriously wonder if you and he are
related, both biologically and sharing of software interest?

Gee, this if a fun quote:
<http://wiki.alu.org/Duane_Rettig's_Road_To_Lisp>
   I also saw the Byte magazine that featured Lisp, but saw very little
   prupose for lambda, and saw even less purpose for all those
   irritating, stupid parentheses, ...

I guess you eventually realized that just as you can nest
expressions, instead of assigning a value to a variable, if you're
only going to use that value once, likewise you can create an
anonymous first-class function as a pure value and nest it, instead
of naming it then calling it by name, if you're only going to call
it from one place in your code, right?


Koan for newbies:

You can do this:
(defun sqrt3+ (x)
  (sqrt (+ 3 x)))
(setq values '(1 4 7))
(mapcar #'sqrt3+ values)

Or you can just do this:
(mapcar #'(lambda (x) (sqrt (+ 3 x)))
        '(1 4 7))

either => (2.0 2.6457512 3.1622777)

Sometimes for debugging purposes you want to do the former, but the
latter is more compact and hence easier to understand in a glance,
right? My overall recommendation is to use the former approach when
debugging something you're *really* not sure of, then refactor the
syntax to the latter as soon as you have it working.
From: Duane Rettig
Subject: Re: OT: To Duane Rettig of franz.com
Date: 
Message-ID: <o0abjgnxeb.fsf@gemini.franz.com>
·················@SpamGourmet.Com (Robert Maas,
http://tinyurl.com/uh3t) writes:

> Hey, ever since I first noticed you posting in this newsgroup, I
> wondered about your name, if you were related to the child-actor
> who played in Lassie and The 5,000 Fingers of Dr. T. Today I
> finally looked in IMDB to verify those roles, and read his bio, and
> was sad to learn he was dead years ago. But given this fact:
>    Linkname: Tommy Rettig - Biography
>         URL: http://us.imdb.com/name/nm0720568/bio
>    For the last several years of his life Tom was a successful software
>    developer. His products in Dbase and FoxPro were used by hundreds of
>    other developers.
> now with the S/W connection I seriously wonder if you and he are
> related, both biologically and sharing of software interest?

Nope, no relation at all.  I've gotten the question many times before,
though.

> Gee, this if a fun quote:
> <http://wiki.alu.org/Duane_Rettig's_Road_To_Lisp>
>    I also saw the Byte magazine that featured Lisp, but saw very little
>    prupose for lambda, and saw even less purpose for all those
>    irritating, stupid parentheses, ...
>
> I guess you eventually realized that just as you can nest
> expressions, instead of assigning a value to a variable, if you're
> only going to use that value once, likewise you can create an
> anonymous first-class function as a pure value and nest it, instead
> of naming it then calling it by name, if you're only going to call
> it from one place in your code, right?

Yes, but that's not what made me come around to the Lisp way of
thinking, since most of those things could be done in other languages
already (not anonymity, but I was already passing C functions around
as arguments in some source-to-source processing in my former job).

-- 
Duane Rettig    ·····@franz.com    Franz Inc.  http://www.franz.com/
555 12th St., Suite 1450               http://www.555citycenter.com/
Oakland, Ca. 94607        Phone: (510) 452-2000; Fax: (510) 452-0182