Author: Anthony Cozzie
Date: 11:24:53 01/23/04
Go up one level in this thread
On January 23, 2004 at 12:44:47, Tord Romstad wrote: >On January 23, 2004 at 09:27:53, Robert Hyatt wrote: > >>On January 23, 2004 at 03:37:46, Tord Romstad wrote: >> >>>On January 22, 2004 at 22:58:00, Robert Hyatt wrote: >>> >>>>you know, when I was first introduced to Lisp a _long_ time ago, I looked >>>>the person right in the eye and said "that is a write-only language." >>>> >>>>My opinion has not changed. >>> >>>Then just go ahead and hack the readtable to your liking. Lisp is not called >>>a "programmable programming language" for no reason. The syntax, like most >>>other aspects of the language, is fully programmable. Readtables are >>>first-class objects and can be copied, manipulated, passed to and returned >>>from functions. You can even change it at runtime if you want. It won't >>>even break your macros. >> >>Why not also hack the BNF grammer for C to fix the things I don't like there? > >But then you are no longer programming in C. > >>oops. <portability> :) >> >>That is _still_ an important concept. > >It is. That is one of the many reasons your analogy is flawed. There is >no loss of portability if you define a new readtable. Your code is still >perfectly portable ANSI Common Lisp. The READ function and >readtables as first-class objects is not only part of the ANSI Common >Lisp standard, they are so fundamental that they could arguably be >said to be the defining feature of the language. > >Lisp has no fixed syntax. It is all fluid, and can be changed from >*within* the language. There is no way you can do anything even >remotely similar in C. Most (though not quite all) Lispers prefer to >keep the flexibility of the s-expression syntax, but it is not because >they are forced to do so. > >>>You may wonder why hardly anyone uses anything except the default s-expression >>>syntax. The reason is that all experienced Lisp programmers learn to love the >>>syntax, and find it to be one of the main attractions of the language. It is >>>not at all difficult to read, once you get used to it. I read Lisp code >>>much more easily and fluently than any of the more mainstream languages. >> >>I have done lots of lisp programming in the past. > >Considering your apparently very limited knowledge of Lisp, I would >assume that this was in the very distant past. Otherwise, your >instructors and/or books must have been very poor. > >>However I would never >>say that ((((((((((x))))))))))) is easier to read than well-written C that >>is indented reasonably... > >Comparing well-written C to horrible Lisp is not quite fair, is it? >your "code" above couldn't possibly occur in any well-written Lisp >program. > >>>>:) >>>> >>>>Thank goodness vi supports the % key. :) >>> >>>The editor friendlyness is one of the benefits of the syntax. Thanks to >>>the syntax, Lisp code is much easier and faster to write, manipulate >>>and navigate than code in other languages. When writing C code, I am >>>forced to take a very low-level approach to editing, and move around, >>>copy and delete code on a line or character basis most of the time. >>>When writing Lisp code, I can navigate by expressions rather than by >>>lines and characters. >> >>If you write C properly, moving stuff around is very easy. I do this all >>the time with no problem. It just requires some discipline in indenting so >>that when you move a block, you only move a block... > >To some extent it works, but it is too limited to be really useful. >Consider one of the simplest possible examples: If my cursor is at the >beginning of the C expression 3*a + 2*b + 4*c, and I try to execute a >keystroke which is supposed to delete (or copy, or mark, or whatever) the >expression directly following the expression, it is not possible for the >editor to know whether I want to do the operation on 3*a or the sum of all >the three terms. For the equivalent Lisp expression >(+ (* 3 a) (* 2 b) (* 4 c)), the behavior is perfectly well-defined. > >I have thousands of hours of programming experience in C as well as Lisp. >I read, write, debug and edit Lisp code several times faster than C code >for all non-trivial programming tasks. And this is *not* because I am >good, rather the reverse. I am a mathematician, not a programmer. >Experts like you might be able to write complicated programs in low-level >languages like C. Lisp is a tool which makes it possible for >uneducated amateurs like myself to make the computer do really >amazing things. > >Tord I personally prefer ML, but there is really no question that functional languages are way easier to write code in. You simply write down exactly what you want: fun CASE1: -> do thing 1 CASE2: -> do thing 2 OTOH, well written C is probably twice as fast as anything but well written assembly. But give the compiler guys another 10 years or so . . . . anthony
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.