5 ms·
Depends on the lisp. CL is not so functional, it is multi-paradigm. Clojure, however, is mostly functional. The complexities surrounding state in CL are not un
by hellofunk 10y ago
Depends on the lisp. CL is not so functional, it is multi-paradigm. Clojure, however, is mostly functional.
The complexities surrounding state in CL are not unlike any other non-functional language. I find it hard to call a language functional if it doesn't strongly encourage immutability (or require it) and, preferably, have persistent data structures.
It's for these two reasons that I don't think Swift is functional, and I don't consider CL to be functional.
- delish 10y agoThere's a big group of hackers who refer to Common Lisp as "Lisp" or "lisp." I believe Doug Hoyte is doing that. Richard Gabriel and Peter Norvig do it too. They might say, "Clojure is a lisp," but when referring to "Lisp" (i.e. without an article "a" or "the") they're talking about CL.
- hellofunk 10y agoAnd there's a big group of academics, nearly all of them, that refer to lisp as a family of languages with many dialects.
- iak8god 10y ago> And there's a big group of academics, nearly all of them, that refer to lisp as a family of languages with many dialects. Certainly Doug Hoyte, the author of this phenomenal ~400 page book on Common Lisp programming, is aware of that.
- hellofunk 10y agoWell, opinions may vary, but I own this book and the word phenomenal is not appropriate. Most CL hackers I know do not take this book too seriously. It is loaded with pretense and self-congratulatory comments.
- iak8god 10y agoYes, opinions vary. I found LOL very instructive, but maybe I was in just the right place when I discovered it. In any case, what I was responding to in your earlier comment was the implication (I thought) that Hoyte doesn't understand "lisp as a family of languages with many dialects." But since you've read LOL, that cannot have been your point...
- hellofunk 10y agoMy point was more to the readers of HN who wouldn't know, and the title just says "Lisp is not functional" so I was providing some context.
- iak8god 10y agoThanks for clarifying. I can see how it would be confusing for someone to be dropped into chapter 5 of the book with a section title like that. Common Lisp hackers may use "Lisp" colloquially as a shorthand for the language they're working with ("Common Lisp" is a bit of a mouthful, after all), but I don't think many of them are confused about the existence and nature of other lisps, or that they tend to disagree with academics on this.
- lispm 10y agoWhen these people talk about 'Lisp', they mean Lisp 1, Lisp 1.5, Maclisp, Standard Lisp, Emacs Lisp, Lisp Machine Lisp, Common Lisp, ISLisp, Autolisp, ... All these languages are somewhat compatible with the original Lisp 1. Then there is the wider Lisp family which includes Scheme, Dylan, Clojure, ECMAScript, Racket, SKILL, Hop, Logo, ...