Live data from Hacker News

Lisp is sin

blogs.msdn.com

51–60 of 60 posts

Re: Lisp is sin

#51
post #46

Earlier quoted context omitted.

The only conclusion I can draw is that you didn't read my comment, because if you had you wouldn't try to counter my argument by circuitously agreeing with me. I am sure your friend was very productive with Access and Excel, and I'm sure they used advanced cryptographic protocols, solved tricky problems involving communications timing, handled cross-platform compatibility issues, programmed efficient inner rendering…

> You can't write a 3d engine in excel You can, a guy has done it. I'm only being pedantic because this is cool if you haven't seen it: http://www.gamasutra.com/view/feature/3563/microsoft_excel_r...

That is really cool.

Re: Lisp is sin

#52

> I know that if I write a C# program today that it can be called by a Boo program which in turn can be called by IronPython. This is another reason we should be grateful for Clojure. It will have a .Net implementation soon, too.

And why would be able to run it on .NET would be some reason to be grateful?

Re: Lisp is sin

#53
post #50
post #42

Earlier quoted context omitted.

From [ http://clojure.blip.tv/file/1313398/ ] I got the impression that Clojure on the CLR was back-burner at best. There appears to be only one committer to the CLR source base since February (possibly longer).

I believe the greater push is to write Clojure in Clojure which will (hopefully) facilitate targetting other platforms.

Yes, like some did with Squeak. You can generate a vm using Squeak itself, so it will easily flow to other places

Re: Lisp is sin

#54
If I remember it right, Joel's "Perils of Java Schools" was about college CS programs which should be a lot more fundamental than just practical. This guy's essay conflates the equivalent of weekend carpenters, building maintenance, and civil engineers into one set of "programmers".

Re: Lisp is sin

#55
post #14

Earlier quoted context omitted.

Horse hockey. While I know that there are a lot of horror stories (and I can tell a few), some of the most productive "programmers" I've ever met used MS Access or Excel. If you don't consider advanced usage of these applications as a form of programming, then you are illustrating the point: It is not only possible to "dumb down" programming, it is inevitable. So much so that you haven't even noticed it happening.

Heh... I know a guy who thinks he's too dumb to program in anything except Lisp (ALGOL syntax is hard! It's like math! :-)

I think you are talking about me

Re: Lisp is sin

#56

Compare the C# version of memoize to this one (from On Lisp). The C# one looks very long and ugly in comparison, so I hope it isn't the new Common Lisp. (defun memoize (fn) (let ((cache (make-hash-table :test #'equal))) #'(lambda (&rest args) (multiple-value-bind (val win) (gethash args cache) (if win val (setf (gethash args cache) (apply fn args)))))))

Code in unfamiliar languages always looks ugly. I know c# but not Lisp, and that just looks like ugly brackets salad to me. It can't help that your formatting as AWOL. So your statement that The C# one looks very long and ugly is entirely subjective.

Of course it is, and can I coin the "ugly brackets salad" phrase?

Re: Lisp is sin

#57
Seriously - why do programmers have so much trouble putting text on a website? What is their malfunction? No other domain seems to run into the issues that software people do. Folks - it's just text. On a website. Please try hard to figure it out. This is one guy we would never hire.

Re: Lisp is sin

#58

Compare the C# version of memoize to this one (from On Lisp). The C# one looks very long and ugly in comparison, so I hope it isn't the new Common Lisp. (defun memoize (fn) (let ((cache (make-hash-table :test #'equal))) #'(lambda (&rest args) (multiple-value-bind (val win) (gethash args cache) (if win val (setf (gethash args cache) (apply fn args)))))))

Lisp certainly has many advantages, but general readability is not one of them. Maybe when talking about complex algorithms with a sufficiently designed DSL... Here's your code reformatted: (defun memoize (fn) (let ((cache (make-hash-table :test #'equal))) #'(lambda (&rest args) (multiple-value-bind (val win) (gethash args cache) (if win val (setf (gethash args cache) (apply fn args))))))) And here is a prettier (use…

Hmmm, I guess I should learn how to format text on hn when I want to make a point about readability. ;-)

Even so, with the caveat that you have to learn Common Lisp fist, I think the CL version is infinitely more clear and elegant. All that type information is redundant in the C# version, since in this case all you want to say about the types is that you don't care what they are.

multiple-value-bind is among the longest function name in CL, and doing something that python does much better with syntax alone, perhaps Python is the new Lisp.

Re: Lisp is sin

#59

Compare the C# version of memoize to this one (from On Lisp). The C# one looks very long and ugly in comparison, so I hope it isn't the new Common Lisp. (defun memoize (fn) (let ((cache (make-hash-table :test #'equal))) #'(lambda (&rest args) (multiple-value-bind (val win) (gethash args cache) (if win val (setf (gethash args cache) (apply fn args)))))))

Lisp certainly has many advantages, but general readability is not one of them. Maybe when talking about complex algorithms with a sufficiently designed DSL... Here's your code reformatted: (defun memoize (fn) (let ((cache (make-hash-table :test #'equal))) #'(lambda (&rest args) (multiple-value-bind (val win) (gethash args cache) (if win val (setf (gethash args cache) (apply fn args))))))) And here is a prettier (use…

"Almost anyone could read the C# code, provided they know that => means lambda and at least heard of a closure. That is not true of the Common Lisp version."

Aha. WTF? Ok, if I know what the code means, than I can read it. But that's only the case for C# and not for Common Lisp.

Re: Lisp is sin

#60

Earlier quoted context omitted.

Code in unfamiliar languages always looks ugly. I know c# but not Lisp, and that just looks like ugly brackets salad to me. It can't help that your formatting as AWOL. So your statement that The C# one looks very long and ugly is entirely subjective.

Of course it is, and can I coin the "ugly brackets salad" phrase?

I coined it, but you can have it. See also: angry fruit salad http://catb.org/jargon/html/A/angry-fruit-salad.html
Post reply on HN