top | item 811879

Before you start learning Lisp...

76 points| fogus | 16 years ago |abhishek.geek.nz | reply

27 comments

order
[+] jacquesm|16 years ago|reply
From the article:

> This is because the Lisp standard tries to specify a portable language, not a library.

> Note that even the C language doesn't include these things.

That's true, but the POSIX standard library functions are packaged with almost any C environment except for embedded systems and is usually available 'out of the box'.

Of course there is a clear distinction between what is part of the language and what is part of the library.

Is there an equivalent to so say 'stdlib' in the LISP world ?

[+] aerique|16 years ago|reply
Not for Common Lisp (CL), but a lot of what's in 'stdlib' for C is already in CL. Also a lot of implementations come with substantial extras, like f.e. sockets, that the article mentioned are not in the CL standard.

Incompatibilities in those extras between implementations are handled by meta-packages (libraries or modules in other programming languages) provided by the community.

[+] astine|16 years ago|reply
Not really. Much of the stuff in stdlib is part of the CL standard. Most of the rest is available as part of most implementations. There is no (as I recal) standard library that every has and can expect to be available.
[+] arithmetic|16 years ago|reply
Should be titled "Before you start learning Common Lisp". Anyone with a reasonable functional programming background would know the difference.
[+] varjag|16 years ago|reply
See the last point in the write-up.
[+] garnet7|16 years ago|reply
I'm interested in learning Scheme, and keeping my fingers crossed that they can come together and specify some kind of "batteries-included" standard library. Otherwise, I'm afraid I'll only be able to fiddle with Scheme for an hour or two on weekends and get my real work done with one of the "popular" languages (i.e., Perl, Python, etc.).

Yes, I realize PLT has some batteries included but I'd prefer a community standard rather than a one-distro standard (not that I think (or even have much of an idea if) anything is wrong with PLT).

[+] mgreenbe|16 years ago|reply
Your fingers are going to be crossed for a long time. I think the Steering Committee has too many divergent interests on it for there ever to be agreement on a serious standard library. Schemers are very DIY; for example, see http://philosecurity.org/2009/01/12/interview-with-an-adware.... Rolling your own libraries on top of a tiny implementation is not particularly uncommon. (I just hope you can write more, uh, ethical software than that guy!)

PLT has the most batteries of any distro I've ever seen (disclaimer: one of its authors was my undergrad advisor). That is, PLT is (a) free, (b) mature, and (c) has a fair number of modules written by people other than the developers of the language.

There's no sense in waiting, just dive in. If you don't want to use PLT, Bigloo can call Java libraries---solving your battery problem in a different way.

[+] kiba|16 years ago|reply
Does anybody have a good elsip project idea?

I been trying to learn elisp but I didn't have good enough excuses to write anything in elisp.

[+] mapleoin|16 years ago|reply
write a hacker news reader so I won't have to exit emacs for that.
[+] tocomment|16 years ago|reply
why does it say LISP isn't a functional programming language but Clojure is? Isn't Clojure a dialect of Lisp?
[+] abstractbill|16 years ago|reply
The article was written by someone who seems to believe "Lisp" is synonymous with "Common Lisp" (We're talking about Common Lisp instead, often shortened to "Lisp").

So it seems Clojure (and Scheme, Arc, etc) are implicitly excluded by the author.

[+] arb|16 years ago|reply
The nomenclature goes something like this. The common noun "lisp" refers to the family of languages; the proper noun "Lisp" refers to Common Lisp; and "LISP" refers to obsolete lisp dialects from long before Lisp's time.

Generally, lisps are not necessarily functional, though some dialects are, to varying degrees. Common Lisp isn't very functional at all; Scheme is much more functional; and Clojure is quite strongly functional.

[+] jcl|16 years ago|reply
I believe it's because Clojure constrains itself to immutable data structures, while Lisp allows both mutable and immutable structures. You can do functional programming in Lisp -- like you can many other non-functional languages -- but it isn't required as it is in Clojure.
[+] astine|16 years ago|reply
The author forgets to specify, but he is talking about Common Lisp, not Lisp in general.