Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Here is old reply from pg to this very complaint.

>More than anything else, I think it is the ability of Lisp programs to manipulate Lisp expressions that sets Lisp apart. And so no one who has not written a lot of macros is really in a position to compare Lisp to other languages. When I hear people complain about Lisp's parentheses, it sounds to my ears like someone saying: "I tried one of those bananas, which you say are so delicious. The white part was ok, but the yellow part was very tough and tasted awful."

To make this more clear, lets' look at one example of pg's code. In verbatim it looks like this:

    (mac case (expr . args)
      (if (no (cdr args))
          (car args)
          (let v (uvar)
            `(let ,v ,expr
               (if (= ,v ',(car args))
                   ,(cadr args)
                  (case ,v ,@(cddr args)))))))
For Lisp programmer it looks like this:

    mac case (expr . args)
      if no (cdr args)
         car args
         let v (uvar)
            `let ,v ,expr
               if = ,v ',(car args)
                   ,cadr args
                  case ,v ,(@cddr args)
Lisp code relies on indentation for readability. Lisp aware editor knows how to automatically indent the code because it has been explicitly told. Only few of the inner parenthesis convey semantic information to the programmer.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: