From: Tom
Subject: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <ovXRb.317153$X%5.93348@pd7tw2no>
I've studied programming languages on and off since about 1984 ... a friend
of mine told me about 8 years ago he worked as a programmer for the
government using LISP which I had never really heard of. Looking into it for
the last few days, I see one of the main uses for lisp as I understand it is
artificial intelligence, which is something I've been trying to figure out
the best language to program for, for a couple of ideas I have...

Is lisp still a recommended language to learn? Or is it being superseded by
Java or something else? What would you say are the main differences,
similarities, strengths, weaknesses, etc. for using it?

Thanks very much,

Tom

From: Jens Axel Søgaard
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <40184786$0$291$edfadb0f@dread12.news.tele.dk>
Tom wrote:
> I've studied programming languages on and off since about 1984 ... a friend
> of mine told me about 8 years ago he worked as a programmer for the
> government using LISP which I had never really heard of. Looking into it for
> the last few days, I see one of the main uses for lisp as I understand it is
> artificial intelligence, which is something I've been trying to figure out
> the best language to program for, for a couple of ideas I have...

You got it backwards. The main use of artificial intelligence is as
an excuse to do Lisp programming.

Seriously, Lisp is a general purpose language and can be used for anything
you can do with C and Java.

> Is lisp still a recommended language to learn? 

Sure. See these testamonies:

     <http://alu.cliki.net/RtL%20Highlight%20Film>

Which confirms the old saying: All roads lead to Lisp.

> Or is it being superseded by
> Java or something else? What would you say are the main differences,
> similarities, strengths, weaknesses, etc. for using it?

<http://www.cs.uni-bonn.de/~costanza/lisp/guide.html>

-- 
Jens Axel S�gaard
From: Tom
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <lSXRb.310906$JQ1.178293@pd7tw1no>
Thanks,

Yes, I was studying engineering at Virginia Tech back in 88, 89 and
eventually switched over to english/philosophy/history ... not so much that
I didn't like the engineering but I ended up playing in a band and couldn't
juggle the work that engineering required. I really enjoyed the logic work
in philosophy and the linguistic studies in English. Lisp seems to have
something special to it, I haven't quite figured out what, that makes it
different than other languages I've worked with.
From: Sashank Varma
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <none-667A67.19082928012004@news.vanderbilt.edu>
In article <·······················@pd7tw1no>,
 "Tom" <······@notarealaddress.com> wrote:

> Yes, I was studying engineering at Virginia Tech back in 88, 89 and
> eventually switched over to english/philosophy/history ... not so much that
> I didn't like the engineering but I ended up playing in a band and couldn't
> juggle the work that engineering required. I really enjoyed the logic work
> in philosophy and the linguistic studies in English. Lisp seems to have
> something special to it, I haven't quite figured out what, that makes it
> different than other languages I've worked with.

Given that you have one foot in english/philosophy and
the other heading towards Lisp, you may find Douglas
Hofstadter's "Metamagical Themas" interesting.  This
collection of Scientific American columns has many
charming discussion of the intersection between mind,
recursion, and programming languages.  It even has
three chapers on a now-defunct Lisp dialect.
From: Tom
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <jcYRb.321599$ts4.214270@pd7tw3no>
I initially began studying lisp by studying Logo...anyone else go or
recommend this route?
From: Kenny Tilton
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <4018737A.B66E9BB6@nyc.rr.com>
Tom wrote:
> 
> I initially began studying lisp by studying Logo...anyone else go or
> recommend this route?

Yes, I started on Logo, because I was curious about Lisp and had Logo
sitting on my <gasp> Apple II. Logo really forces you into recursion,
which was new to me, but then i was expecting to encounter novelty so I
just threw myself into it. I was very impressed even with Logo (and I
was not even using the turtle graphics. 

I then went quite far with Logo, moving to a Mac 128k and Microsoft
<gasp!> Logo, prototyping an educational app. End up porting to C
because the interpreted Logo needed help. Wish I had found CL back then,
but I gather the ink was still drying on the spec.

kenny


-- 

 clinisys, inc
 http://www.tilton-technology.com/
 ---------------------------------------------------------------
"[If anyone really has healing powers,] I would like to call
them about my knees."
                    --  Tenzin Gyatso, the Fourteenth Dalai Lama
From: Matthias
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <36wu12fw24c.fsf@goya02.ti.uni-mannheim.de>
Given that 

"Tom" <······@notarealaddress.com> writes:
> I've studied programming languages on and off since about 1984 ... 

you should be competent to answer your question

> Is lisp still a recommended language to learn? Or is it being superseded by
> Java or something else? What would you say are the main differences,
> similarities, strengths, weaknesses, etc. for using it?

by trying it out.  Really, there is no other way to "get it".
(Besides: In a Lisp newsgroup you will find few people telling you
that Lisp is "superseded by Java or something else".)

A good reference to start getting the Lisp/AI idea is Norvig:
"Paradigms of Artificial Intelligence programming".  However, this
book contains mostly "classical" AI techniques.  If you are interested
in a more recent treatment I can recommend "Artificial Intelligence -
A Modern Approach" by Russel and Norvig.  
From: Rahul Jain
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <871xpayyvj.fsf@nyct.net>
Matthias <··@spam.pls> writes:

> A good reference to start getting the Lisp/AI idea is Norvig:
> "Paradigms of Artificial Intelligence programming".  However, this
> book contains mostly "classical" AI techniques.  If you are interested
> in a more recent treatment I can recommend "Artificial Intelligence -
> A Modern Approach" by Russel and Norvig.  

The way I explain it is that PAIP is a book about programming in Lisp
using some classic AI programs as case studies. AIMA is a book about AI
algorithms that has Lisp sample code.

-- 
Rahul Jain
·····@nyct.net
Professional Software Developer, Amateur Quantum Mechanicist
From: John M. Adams
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <oqawu7ads8c.fsf@RAKTABIJA.stsci.edu>
"Tom" <······@notarealaddress.com> writes:

> I've studied programming languages on and off since about 1984 ... a friend
> of mine told me about 8 years ago he worked as a programmer for the
> government using LISP which I had never really heard of. Looking into it for
> the last few days, I see one of the main uses for lisp as I understand it is
> artificial intelligence, which is something I've been trying to figure out
> the best language to program for, for a couple of ideas I have...
>
> Is lisp still a recommended language to learn? Or is it being superseded by
> Java or something else? What would you say are the main differences,
> similarities, strengths, weaknesses, etc. for using it?
>
> Thanks very much,

Not many are using Lisp today, partly because they were not taught
about it in school, but also because its power derives from
considerations that are not obvious and, in some cases, at odds with
popular conception.

I wrote C for eight years before learning Lisp.  I played with Java
starting in 1996 and didn't learn Lisp until 1998.  I also learned
Miranda, C++, Perl and Python along the way.  I enjoyed learning all
of these.  Each has something good.  But Lisp is the only one that I
would say seems conceptually beautiful to me.

We could have long conversations about feature A and how great it is
but do you really need it, and then there are drawbacks B and C and
how do they play in your context.  If you are at all predisposed to
look into Lisp, more information probably won't help at this point.

But we like to teach Lisp to the open-minded.  So please do not be shy
about posting questions.

-- 
John M. Adams
From: Daniel Barlow
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <873c9xrbg0.fsf@noetbook.telent.net>
·······@stsci.edu (John M. Adams) writes:

> Not many are using Lisp today, partly because they were not taught
> about it in school, but also because its power derives from
> considerations that are not obvious and, in some cases, at odds with
> popular conception.

At something of a tangent, I've never really subscribed to this "if we
get it taught in schools more people will use it elsewhere" belief.
Most of the programming I was officially taught at University was in
Modula 2, Gofer, Caml, OCCAM, and a bunch of other languages I've
never used since, but most of the non-Lisp programming I've done since
has been in C, Perl, and Unix shell scripts.


-dan
From: John M. Adams
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <oqak739ed4q.fsf@RAKTABIJA.stsci.edu>
Daniel Barlow <···@telent.net> writes:

> ·······@stsci.edu (John M. Adams) writes:
>
>> Not many are using Lisp today, partly because they were not taught
>> about it in school, but also because its power derives from
>> considerations that are not obvious and, in some cases, at odds with
>> popular conception.
>
> At something of a tangent, I've never really subscribed to this "if we
> get it taught in schools more people will use it elsewhere" belief.
> Most of the programming I was officially taught at University was in
> Modula 2, Gofer, Caml, OCCAM, and a bunch of other languages I've
> never used since, but most of the non-Lisp programming I've done since
> has been in C, Perl, and Unix shell scripts.

If I serve you eggs for breakfast one morning, you will not
necessarily eat lots of eggs later in life.  Is that what you mean?  I
think most would agree.  Here's the thing.  You now have some
experience with eggs.  On the other hand, if you had never heard of
eggs, or if you were taught that they caused cancer (like Modula-2),
you would be unlikely to eat eggs.

There are textbooks, in use in the late 90's, that say things like:
"Data structures in LISP are rather limited".  I know about one such
book because I pulled it off the shelf of a colleague more than a
decade my junior.

-- 
John M. Adams
From: Sebastian Stern
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <401aa91d$0$94616$abc4f4c3@news.wanadoo.nl>
John M. Adams:
| There are textbooks, in use in the late 90's, that say things like:
| "Data structures in LISP are rather limited".  I know about one such
| book because I pulled it off the shelf of a colleague more than a
| decade my junior.

No kidding. Here is an excerpt from a book called "Programming Languages
Essentials", by Dick Grune en Henri Bal, professors at my 'university'
('Java monkey factory' would be more correct).  This is about the only thing
the book says about Lisp:

(quote "
Lisp

Many concepts of functional programming were introduced in McCarthy's
language Lisp, which was designed in 1958. Modern Lisp is not a pure
functional language: it supports variables and assignment statements and
thus in not referentially transparent. However, it was the first language to
support the functional programming style. Lisp supports recursion and
higher-order functions. Lists are the primary data structure. Memomry
allocation and deallocation are done automatically, using garbare
collection.

Lisp was mainly designed for symbolic applications, such as artifical
intelligence programs. For numerical computations, the early Lisp
implementations were much too slow. Another often heard criticism of the
language is that its programs are hard to read, the code for the factorial
function looks as follows in Lisp:

(define (fac x) (cond ((= x 0) 1) (t (* x (fac (- x 1)))))) [sic!]

which is much harder to read than the factorial function in Miranda, given
in Section 4.2. The syntax is very uniform, however, making it easy to store
and manipulate Lisp programs as normal data. This feature is useful for
writing debuggers and other tools in the language itself.

Another problem with Lisp is its lack of a type system. A list, for example,
can contain elements of different types. Although this freedom can be used
to advantage in some cases, it also makes it impossible to detect
type-system errors at compile time. Lisp uses dynamic binding, which can
also be confusing, as discussed briefly in Chapter 2.

Lisp is the direct ancestor of many other languages, for example Scheme, and
has influenced the design of all other functional languages. The successors
of Lisp do usually have a type system, and frequently support features such
as lazy evaluation and pattern matching.
")

This is all such a hopelessly wrong collection of misinformation and
discombobulation that I do not know where to begin, so I will leave the
flaming to someone else.

It is rather depressing that this book is actually used to 'teach'
undergraduates (and me soon, too).

--
Sebastian Stern

"Freedom is the freedom to say (= (+ 2 2) 4). If that is granted, all else
follows."
From: Kaz Kylheku
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <cf333042.0401301441.1ff12def@posting.google.com>
"Sebastian Stern" <··············@wanadoo.nl> wrote in message news:<·························@news.wanadoo.nl>...
> John M. Adams:
> | There are textbooks, in use in the late 90's, that say things like:
> | "Data structures in LISP are rather limited".  I know about one such
> | book because I pulled it off the shelf of a colleague more than a
> | decade my junior.
> 
> No kidding. Here is an excerpt from a book called "Programming Languages
> Essentials", by Dick Grune en Henri Bal, professors at my 'university'
> ('Java monkey factory' would be more correct).

By the way, would that be the same Dick Grune who wrote the first CVS
as a bunch of shell scripts over RCS?
From: Sebastian Stern
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <401b7561$0$68295$4a441750@news.euronet.nl>
Kaz Kylheku:
| By the way, would that be the same Dick Grune who wrote the first CVS
| as a bunch of shell scripts over RCS?

http://www.google.com/search?q=%22dick+grune%22+cvs+%22programming+language+
essentials%22

So the answer is yes. ;-)

--
Sebastian Stern

"Freedom is the freedom to say (= (+ 2 2) 4). If that is granted, all else
follows."
From: André Thieme
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <bvf684$rd3$1@ulric.tng.de>
I am not certain about it, but couldn't it be possible, that the author 
was talking about the original Lisp from '58?
Then some of his statements would make a bit more sense:


> Lisp was mainly designed for symbolic applications, such as artifical
> intelligence programs. For numerical computations, the early Lisp
> implementations were much too slow. Another often heard criticism of the
> language is that its programs are hard to read, the code for the factorial
> function looks as follows in Lisp:
> 
> (define (fac x) (cond ((= x 0) 1) (t (* x (fac (- x 1))))))

Back in 1958 todays identing style was maybe not "invented".
And look at the "define" instead of "defun".


> Another problem with Lisp is its lack of a type system. A list, for example,
> can contain elements of different types. Although this freedom can be used
> to advantage in some cases, it also makes it impossible to detect
> type-system errors at compile time. Lisp uses dynamic binding, which can
> also be confusing, as discussed briefly in Chapter 2.

Well, in the mathematical sense "impossible" is not true for a turing 
complete language. Anyway, I suppose the first versions of Lisp didn't 
have macros - these were invented later.


> Lisp is the direct ancestor of many other languages, for example Scheme, and
> has influenced the design of all other functional languages. The successors
> of Lisp do usually have a type system, and frequently support features such
> as lazy evaluation and pattern matching.

Because of this paragraph it looked to me as if the author was talking 
about the ancient Lisp...
From: Sebastian Stern
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <401b77d1$0$68274$4a441750@news.euronet.nl>
Andr� Thieme:
| I am not certain about it, but couldn't it be possible, that the author
| was talking about the original Lisp from '58?
| Then some of his statements would make a bit more sense: [...]

I doubt it. The 1958 version of Lisp did not have (define (fac n) ...)
syntax AFAIK.  Anyway, the text contains many factual errors, such as the
idea that purely function-oriented languages do not have variables, that CL
can not detect errors at compile-time, that CL can not do pattern matching,
that CL uses only dynamic binding, that it is older than Scheme, etc.  In
any case, mentioning the name Lisp, without qualifiers, such as "Lisp 1.5"
or "Common Lisp", etc., and then criticizing it, is only spreading FUD.
Extra points for mentioning that Lisp is slow and difficult to read.

--
Sebastian Stern

"Freedom is the freedom to say (= (+ 2 2) 4). If that is granted, all else
follows."
From: Karl A. Krueger
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <bvh480$khf$2@baldur.whoi.edu>
Sebastian Stern <··············@wanadoo.nl> wrote:
> I doubt it. The 1958 version of Lisp did not have (define (fac n) ...)
> syntax AFAIK.  Anyway, the text contains many factual errors, such as the
> idea that purely function-oriented languages do not have variables, that CL
> can not detect errors at compile-time, that CL can not do pattern matching,
> that CL uses only dynamic binding, that it is older than Scheme, etc.  In
> any case, mentioning the name Lisp, without qualifiers, such as "Lisp 1.5"
> or "Common Lisp", etc., and then criticizing it, is only spreading FUD.
> Extra points for mentioning that Lisp is slow and difficult to read.

I'd like to recommend that anyone who cares to contribute to the general
Net-using public having a correct impression of Lisp consider taking
some time to contribute to these Wikipedia pages:

	http://www.wikipedia.org/wiki/Common_Lisp
	http://www.wikipedia.org/wiki/Lisp_programming_language
	http://www.wikipedia.org/wiki/Scheme_programming_language

Wikipedia is a collaborative encyclopedia project.  Articles are
intended to be scholarly and to conform to a neutral point of view --
advocacy is frowned upon, but accurate descriptions of Lisp systems with
a view towards clearing up common misconceptions would be great.

-- 
Karl A. Krueger <········@example.edu>
Woods Hole Oceanographic Institution
Email address is spamtrapped.  s/example/whoi/
"Outlook not so good." -- Magic 8-Ball Software Reviews
From: Tom
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <6SvTb.384971$ts4.320875@pd7tw3no>
"Karl A. Krueger" <········@example.edu> wrote in message
·················@baldur.whoi.edu...
> I'd like to recommend that anyone who cares to contribute to the general
> Net-using public having a correct impression of Lisp consider taking
> some time to contribute to these Wikipedia pages:
>
> http://www.wikipedia.org/wiki/Common_Lisp
> http://www.wikipedia.org/wiki/Lisp_programming_language
> http://www.wikipedia.org/wiki/Scheme_programming_language
>
> Wikipedia is a collaborative encyclopedia project.  Articles are
> intended to be scholarly and to conform to a neutral point of view --
> advocacy is frowned upon, but accurate descriptions of Lisp systems with
> a view towards clearing up common misconceptions would be great.
>
> -- 
> Karl A. Krueger <········@example.edu>
> Woods Hole Oceanographic Institution
> Email address is spamtrapped.  s/example/whoi/
> "Outlook not so good." -- Magic 8-Ball Software Reviews

____

I'm not able to pull up the wikipedia site using the links above, at least
at them moment....however http://en.wikipedia.org/wiki/Main_Page works for
me... and http://en.wikipedia.org/wiki/Common_Lisp for Lisp specific
items...
From: Adam Warner
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <pan.2004.02.01.01.37.14.984616@consulting.net.nz>
Hi Andr� Thieme,

>> (define (fac x) (cond ((= x 0) 1) (t (* x (fac (- x 1))))))
> 
> Back in 1958 todays identing style was maybe not "invented".
> And look at the "define" instead of "defun".

Regardless, it would look a lot better if the author knew the Common Lisp
functions IF, ZEROP and 1-:

(defun fac (x) (if (zerop x) 1 (* x(fac(1- x)))))

For bonus points the author could point out that #\! is a character
reserved for the user.

(set-macro-character #\! (lambda (s c) (declare (ignore c))
                           (fac (read s t nil t))))

!10, while read as "the factorial of 10" instead of "10 factorial" is
still tidy syntax.

Thanks for the chuckles Sebastian.

Regards,
Adam
From: Rob Warnock
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <f-qcnfQhuY0VQ4HdXTWc-w@speakeasy.net>
Adam Warner  <······@consulting.net.nz> wrote:
+---------------
| For bonus points the author could point out that #\! is a character
| reserved for the user.
| 
| (set-macro-character #\! (lambda (s c) (declare (ignore c))
|                            (fac (read s t nil t))))
| 
| !10, while read as "the factorial of 10" instead of "10 factorial" is
| still tidy syntax.
+---------------

And of course, if you really just *had* to have "10 factorial"
you could always define it as a dispatching macro character:

	> (set-dispatch-macro-character #\# #\!
	    (lambda (s c n)
	      (declare (ignore s c))
	      (fac n)))
	#<Interpreted Function>
	> #10!
	3628800
	> 


-Rob

-----
Rob Warnock			<····@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607
From: Adam Warner
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <pan.2004.02.01.12.23.42.594363@consulting.net.nz>
Hi Rob Warnock,

> +---------------
> | For bonus points the author could point out that #\! is a character
> | reserved for the user.
> | 
> | (set-macro-character #\! (lambda (s c) (declare (ignore c))
> |                            (fac (read s t nil t))))
> | 
> | !10, while read as "the factorial of 10" instead of "10 factorial" is
> | still tidy syntax.
> +---------------
> 
> And of course, if you really just *had* to have "10 factorial"
> you could always define it as a dispatching macro character:
> 
> 	> (set-dispatch-macro-character #\# #\!
> 	    (lambda (s c n)
> 	      (declare (ignore s c))
> 	      (fac n)))
> 	#<Interpreted Function>
> 	> #10!
> 	3628800

Nice. Thanks for reminding me about the integer reader in dispatching
macro characters. From 2.1.4.4:

"If a character is a dispatching macro character C1, its reader macro
function is a function supplied by the implementation. This function reads
decimal digit characters until a non-digit C2 is read. If any digits were
read, they are converted into a corresponding integer infix parameter P;
otherwise, the infix parameter P is nil."

The beauty of this is one can still use the subcharacter for other
purposes! To illustrate, here's something pointless:

(set-dispatch-macro-character #\# #\!
  (lambda (s c n)
    (declare (ignore c))
      (if n
         (fac n)
         (let ((obj (read s t nil t)))
           (if (integerp obj)
               (format nil "~R" obj)
               `(concatenate 'string ,@obj))))))

Now:

#10! => 3628800
#!1000 => "one thousand"
#!("a" "b" "c") => "abc"

That's versatility!

Thanks,
Adam
From: Dave Roberts
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <2g0Ub.219434$na.359878@attbi_s04>
Rob Warnock wrote:

> Adam Warner  <······@consulting.net.nz> wrote:
> +---------------
> | For bonus points the author could point out that #\! is a character
> | reserved for the user.
> | 
> | (set-macro-character #\! (lambda (s c) (declare (ignore c))
> |                            (fac (read s t nil t))))
> | 
> | !10, while read as "the factorial of 10" instead of "10 factorial" is
> | still tidy syntax.
> +---------------
> 
> And of course, if you really just *had* to have "10 factorial"
> you could always define it as a dispatching macro character:
> 
> > (set-dispatch-macro-character #\# #\!
> (lambda (s c n)
> (declare (ignore s c))
> (fac n)))
> #<Interpreted Function>
> > #10!
> 3628800

This is so cool.

-- Dave
From: Thomas A. Russ
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <ymi8yji65og.fsf@sevak.isi.edu>
Dave Roberts <·····@re-move.droberts.com> writes:

> 
> Rob Warnock wrote:
> > 
> > And of course, if you really just *had* to have "10 factorial"
> > you could always define it as a dispatching macro character:
> > 
> > > (set-dispatch-macro-character #\# #\!
> > (lambda (s c n)
> > (declare (ignore s c))
> > (fac n)))
> > #<Interpreted Function>
> > > #10!
> > 3628800
> 
> This is so cool.

Another similarly cool, and potentially much more useful, use of
readtable hacking was work done by Roman Cunis (while at the University
of Hamburg) with his measures package.

The readtable can also be modified in such a way as to allow one to
write numbers with units and dimensions "naturally" in Lisp code.  For
example one could have

  (list 5 10m 25.3m2/s)

and have the dimensioned numbers turned into appropriate data
structures.  By using your own package to shadow the standard arithmetic
operations, you can then even get arithmetic to work like:

  (* (+ 3m 30cm) 5)   => 16.5m


I wish I could find a good location for the original source of this
code.  For some reason I thought it was at the CMU repository, but I
can't seem to find it there.

If it can't be found anywhere else, it is available as part of the Loom
software but can be used entirely separately from it.  The measures code
with some of my own modifications is available from 
http://www.isi.edu/isd/LOOM as part of the main Loom distribution.  It
is not encumbered by the Loom license.

-- 
Thomas A. Russ,  USC/Information Sciences Institute
From: Henrik Motakef
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <x7ektaim5i.fsf@crocket.internal.henrik-motakef.de>
···@sevak.isi.edu (Thomas A. Russ) writes:

> Another similarly cool, and potentially much more useful, use of
> readtable hacking was work done by Roman Cunis (while at the University
> of Hamburg) with his measures package.
[...]
> I wish I could find a good location for the original source of this
> code.  For some reason I thought it was at the CMU repository, but I
> can't seem to find it there.

Would that be 
<http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/code/syntax/measures/0.html>?
From: Thomas A. Russ
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <ymiznbx4bfc.fsf@sevak.isi.edu>
Henrik Motakef <············@henrik-motakef.de> writes:
 
> ···@sevak.isi.edu (Thomas A. Russ) writes:
 
> > Another similarly cool, and potentially much more useful, use of
> > readtable hacking was work done by Roman Cunis (while at the University
> > of Hamburg) with his measures package.
> [...]
> > I wish I could find a good location for the original source of this
> > code.  For some reason I thought it was at the CMU repository, but I
> > can't seem to find it there.
 
> Would that be 
> <http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/code/syntax/measures/0.html>?

Precisely!

Thanks,
  - Tom

-- 
Thomas A. Russ,  USC/Information Sciences Institute
From: Sebastian Stern
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <401b7d79$0$529$cd19a363@news.wanadoo.nl>
Sebastian Stern wrote:
| No kidding. Here is an excerpt from a book [...]

After I wrote this, I got a hilarious e-mail from one of my fellow students,
whom I previously introduced to Lisp and had been having an e-mail
discussion with.  He is a paranoid OpenBSD user, who wishes not to
participate in newsgroup discussions (yes, they _are_ as paranoid as you
think), _and_ a Jerry Springer fan, so here it is:

"Secrets decrypted!"
Jerry: Hi, and welcome. In tonight's show my guests confess secrets they
have been keeping from their peers for a long time.
Audience: Ooohhhh
Jerry: Meet Sebastian. Sebastian is a student at the Free University. What's
the story Sebastian?
Sebastian: Well Jerry, for the past two years I have been using Java at my
university, but now I'm here to tell them that I have been secretly been
using another language.
Audience: Ooohhhh
Jerry: What's language is that Sebastian?
Sebastian: It's Lisp Jerry.
Audience: *gasps* Ooohhhh
Jerry: Do your professors know about this?
Sebastian: No they don't.
Jerry: Well they do know, they've been listening backstage. Here's Andy
[Tanenbaum]!
Andy storms on the stage and towards Sebastian, Sebastian stands up. Steve
jumps in between.
Andy: How could you! Java is a great language!
Sebastian: No, it's not! It's ancient, it doesn't have higher-order
functions, does not optimize for recursion and does not even have macros!
Andy: I'll show you a macro! *tries to get to Sebastian again, Steve stops
him.*
Audience: Steve! Steve! Steve! *Andy calms down and sits*
Jerry: Andy, Sebastian says Lisp is better.
Andy: Yeah well, you know Jerry, I'm a professor and I'm always right. And
everybody knows Lisp is slow and is unreadable with all those parentheses.
Besides, Lisp had its chance and it did not come through on its promise, so.
Jerry: Sebas..
Sebastian: That's bullshit! Lisp is faster than Java and you need
parentheses for macros and they ARE readable and you would know it if you
would stop drooling at your degrees.
Andy: *stands up, charges to Sebastian* I'm going to flunk you, boy!
*Sebastian jumps back, Steve catches Andy and they calm down again.*
Jerry (to Sebastian): So you're not going to switch to Java, you're sticking
with Lisp?
Sebastian: That's right Jerry.
Jerry: Let's take a break!
*audience cheers*

Audience member: This is for that professor. How can you teach Java instead
of Lisp? What does type declaration and useless compile-run sessions have to
do with teaching how to program?
Andy: What?! What do you know? You don't know! I've been teaching all my
life *pulls up shirt* See this? *pulls out degrees and awards* I'm a
PROFESSOR and I can outwit your ass anytime! *Audience member makes
provocative gestures* Yeah? I'll show you *stands up and walks towards
crowd* What you got? I'm all that! I'm all that! *waves degrees* *audience
goes mad* I'm all that. *Andy sits back down* Y'all don't know! Whatever..
Audience member: To the professor, don't you think teens today spend too
much time behind a computer screen, when they should be out socializing with
friends?
Audience: Go to Oprah! Go to Oprah! Go to Oprah!
Jerry: We'll be right back!
*Todd waves, audience cheers*

Jerry: To each his own is an often heard expression. And one might say the
same goes for programming languages. But what language we use and teach
affects not ourselve, but also that of the people that use it and the
programmers that have to take care of it after we abandon it. As long as we
continue to have superstitions towards parentheses and base our arguments on
the number of titles we got, instead of objective analysis of the material
at hand, we will never benefit from everything that Lifp has to offer us.
Until next time, take care of yourself, and each other.

;-)

--
Sebastian Stern
"Freedom is the freedom to say (= (+ 2 2) 4). If that is granted, all else
follows."
From: William J. Lamar
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <GazSb.512$KV5.276@nwrdny01.gnilink.net>
Daniel Barlow skribis:

>[...]
> At something of a tangent, I've never really subscribed to this "if we
> get it taught in schools more people will use it elsewhere" belief.
> Most of the programming I was officially taught at University was in
> Modula 2, Gofer, Caml, OCCAM, and a bunch of other languages I've
> never used since, but most of the non-Lisp programming I've done since
> has been in C, Perl, and Unix shell scripts.
>[...]

Assuming that Lisp is a better programming language than "Modula 2, Gofer,
Caml, OCCAM", etc., then the fact that you were taught those languages at
University and have not used them since is not a very strong indication
that the belief "if we get it taught in schools more people will use it
elsewhere" is an incorrect one when talking about Lisp.
From: Tom
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <ttRSb.352869$ts4.127397@pd7tw3no>
Just wanted to say thanks in advance to all the interesting replies! I'm in
the process of reading through them now but don't have much time on weekends
and my girlfriend has stayed home sick so I haven't had much chance to even
get on the computer.

Thanks very much once again and I appreciate all your intelligent replies
and speaking to you in the future.

Tom
From: Tom
Subject: Re: Programmer interested in learning LISP (or not?) - recommendation?
Date: 
Message-ID: <8LvTb.384924$ts4.3735@pd7tw3no>
And since everyone seems to know the common textbooks and authors I thought
I'd mention I'm studying logo (a dialect of lisp) ... the book I'm reading
is the second edition of Brian Harvery's "Computer Science Logo Style"
Volume 1, Symbolic Computing.