Live data from Hacker News

Learn Lisp the Hard Way

learnlispthehardway.org

11–20 of 144 posts

Re: Learn Lisp the Hard Way

#11

Before asking the obvious question when noticing the "Learn [X] The Hard Way" pattern, the FAQ already addresses that :-) Q: Is this site affiliated with Zed Shaw and Learn Code The Hard Way? A: No. This is a separately run and managed site, based on the format of Zed Shaw's LxTHW open-source package [1] for writing your own programming language course. You should check out the project and see what others are up to!…

Why copy his format? Seems Zed did the hard work to establish the brand.

Re: Learn Lisp the Hard Way

#12

Before asking the obvious question when noticing the "Learn [X] The Hard Way" pattern, the FAQ already addresses that :-) Q: Is this site affiliated with Zed Shaw and Learn Code The Hard Way? A: No. This is a separately run and managed site, based on the format of Zed Shaw's LxTHW open-source package [1] for writing your own programming language course. You should check out the project and see what others are up to!…

[deleted]

Re: Learn Lisp the Hard Way

#13
post #5
post #4

Earlier quoted context omitted.

> The biggest secret to Lisp is that it is actually the simplest programming language ever created—and that, coupled with its expressiveness and elegance, is why it is favored exclusively by the best programmers in the world. But is it?

Sounds like you just got told you're not one of the best programmers in the world and are still in shock about it.

Sounds to me like the GP is in shock about such an over-the-top claim. And it sounds like you're trying to pretend to read his/her statement for something other than what it is.

Re: Learn Lisp the Hard Way

#14
post #9
post #3

Earlier quoted context omitted.

Just because Lisp looks foreign doesn't mean that it's harder. The syntax is different , but it is also very simple . If this were untrue, Scheme wouldn't have survived as a teaching language all these years.

It's less about it being 'foreign' and more about it being totally unparsable. The thing with imperative programming is that you don't really need to know the language to at least get an idea of what's happening. Lisp is so dense that while you can pack an unbelievable amount of programming into a small chunk, approaching it as a beginner is daunting. There isn't a really good way to 'build' on an algorithm and learn…

I don't find your argument to be very compelling. Let me guess: you learned imperative programming first, you're most familiar with it, and you only have limited experience with Lisp, if any? The fact that you find imperative programming easy (because you know it well) and Lisp and functional programming to be hard, is not very informative about which of imperative or Lispy or functional programming is easiest to learn.

Re: Learn Lisp the Hard Way

#15
post #2

"Is Lisp as hard as people say it is? No. Lisp is actually the simplest programming language, and has no syntactic cruft. While it wasn't designed to be “easy to learn” like Swift, Python, Ruby, or Basic, there is less overall to learn and you will be writing real, useful programs in Lisp sooner than you could with other languages." It's like a never-ending stream of lies, every word being a little more absurd than t…

Could you enumerate the lies for us? Your comment is arresting but not enlightening without more information.

I'm an Lisp programmer, so I can. The language ANSI Common Lisp certainly has its fair share of "syntactic cruft". For instance numerous "macro dispatch characters" like #'func #:sym #c(2.0 4.1) #(vec tor). None of the syntactic cruft requires a LR(1) algorithm to work out; most of it is based on recognizing a character or two of prefix material and dispatching a read function. When the dispatch involves two characters, the first one is almost always # (though for programming your own nonstandard read syntax, that is not a fixed rule.) Read syntax is not even considered "real" syntax by Lisp programmers; "real" syntax is the structure of macros. But since macro forms are unambiguously written as nested lists, they already express the phrase structure almost directly; there is no phrase structure that needs to be applied to get a syntax tree.

There isn't any syntactic cruft in Lisp that will have you scratching your head as to what goes with what.

There are semantic head-scratchers related to syntax, like working out the implied actions of complicated, nested backquotes. There is never a question of syntax, though: nested backquotes are not ambiguous syntactically: they are just nested lists, with some sprinkling of a simple prefix-based notation throughout (splices and unquotes).

Re: Learn Lisp the Hard Way

#17

Before asking the obvious question when noticing the "Learn [X] The Hard Way" pattern, the FAQ already addresses that :-) Q: Is this site affiliated with Zed Shaw and Learn Code The Hard Way? A: No. This is a separately run and managed site, based on the format of Zed Shaw's LxTHW open-source package [1] for writing your own programming language course. You should check out the project and see what others are up to!…

Why copy his format? Seems Zed did the hard work to establish the brand.

Why would he put up a public repository if he did not want the format copied?

Zed A. Shaw created project Learn X The Hard Way 2011-08-29 22:06:48 UTC This is a skeleton book project that makes it easier to start working on a "Learn X The Hard Way"...

Re: Learn Lisp the Hard Way

#19
post #9
post #3

Earlier quoted context omitted.

Just because Lisp looks foreign doesn't mean that it's harder. The syntax is different , but it is also very simple . If this were untrue, Scheme wouldn't have survived as a teaching language all these years.

It's less about it being 'foreign' and more about it being totally unparsable. The thing with imperative programming is that you don't really need to know the language to at least get an idea of what's happening. Lisp is so dense that while you can pack an unbelievable amount of programming into a small chunk, approaching it as a beginner is daunting. There isn't a really good way to 'build' on an algorithm and learn…

Lisp is totally parseable. So much so, that no LALR(1) approach is required to conquer it. It consists of an unambiguous parenthesized notation, plus some simple prefix-basd notations (and only a small modicum of non-nesting infix, like the consing dot and the colon in "package:symbol". You do not run into any issues of associativity or precedence. Moreover, indenting Lisp so that it looks good, readable and "canonical" is very simple; it is based only on a couple of heuristics that can be applied to small expressions or large functions alike.

Re: Learn Lisp the Hard Way

#20
post #2

"Is Lisp as hard as people say it is? No. Lisp is actually the simplest programming language, and has no syntactic cruft. While it wasn't designed to be “easy to learn” like Swift, Python, Ruby, or Basic, there is less overall to learn and you will be writing real, useful programs in Lisp sooner than you could with other languages." It's like a never-ending stream of lies, every word being a little more absurd than t…

Could you enumerate the lies for us? Your comment is arresting but not enlightening without more information.

Lisp is the hardly the simplest language. It has way less 'stuff' to learn, but that 'stuff' in imperative languages is generally useful abstractions that you don't to learn, but instead simply know of. By that measurement, x86 Assembly is really the simplest language of them all, but I don't think I need to explain why that's equally absurd.

Lisp is a difficult language due to it's density and unreadability.

Useful stuff hasn't been built in functional languages until very recently, exception being some AI. Haskell and friends are making functional languages cool and useful (and that's great!) but if you want to build something useful as soon as possible, learn .NET, Java, Python or Ruby.

Post reply on HN