Lisp is a (family of) general purpose functional programming language(s), based on the lambda calculus, and with the ability to manipulate source code as a data structure.
88
votes
18answers
26k views
Is LISP still useful in today's world? Which version is most used?
I try to teach myself a new programming language in regular intervals of time. Recently, I've read how Lisp and its dialects are at the complete opposite end of the spectrum from languages like C/C++, ...
77
votes
5answers
16k views
Scheme vs Common Lisp: Which characteristics made a difference in your project? [closed]
There are no shortage of vague "Scheme vs Common Lisp" questions on both StackOverflow and on this site, so I want to make this one more focused. The question is for people who have coded in both ...
36
votes
9answers
2k views
How should I start with Lisp?
I've been programming for years now, working my way through various iterations of Blub (BASIC, Assembler, C, C++, Visual Basic, Java, Ruby in no particular order of "Blub-ness") and I'd like to learn ...
30
votes
17answers
5k views
Why is Lisp useful?
Lisp obviously is an advantage for the AI stuff but it doesn't appear to me that Lisp is any faster than Java, C#, or even C. I am not a master of Lisp, but I find it incredibly difficult to ...
30
votes
11answers
3k views
Why isn't Lisp more widespread?
I am starting to learn Scheme by the SICP videos, and I would like to move to Common Lisp next.
The language seems very interesting, and most of the people writings books on it advocate that it has ...
30
votes
13answers
1k views
Problems (such as maintenance) in development with unpopular language
I'm developing some application with clojure(lisp) alone in my team. It starts as small application. No problem. But as it's having features and extending the area, it's becoming important program.
I ...
28
votes
7answers
2k views
C# Dev - I've tried Lisps, but I don't get it
After a few months of learning about and playing with Lisp, both CL and a bit of Clojure, I'm still not seeing a compelling reason to write anything in it instead of C#.
I would really like some ...
27
votes
4answers
1k views
What does your Lisp workflow look like?
I'm learning Lisp at the moment, coming from a language progression that is Locomotive BASIC -> Z80 Assembler -> Pascal -> C -> Perl -> C# -> Ruby. My approach is to simultaneously:
write a simple ...
25
votes
6answers
8k views
Haskell AND Lisp vs. Haskell OR Lisp
I currently code with C, C++, and Python. I'm wanting to pick up a functional programming language, and right now I'm leaning toward Haskell. I do NOT want to start a "Haskell vs Lisp" war here; what ...
20
votes
9answers
1k views
What did Stallman mean in this quote about implementing other languages in Lisp?
I just read the following quote from Stallman as part of a speech he gave many years ago. He's talking about how it is feasible to implement other programming languages in Lisp, but not feasible to ...
20
votes
10answers
2k views
Would you use (a dialect of) LISP for a real-world application? Where and why?
LISP (and dialects such as Scheme, Common LISP and Clojure) haven't gained much industry support even though they are quite decent programming languages. (At the moment though it seems like they are ...
18
votes
7answers
1k views
Is there a language more general than Lisp? [closed]
I've been programming for a long time, and writing in Lisp (well, mostly Scheme) for a little less. My experience in these languages (and other functional languages) has informed my ability to write ...
18
votes
5answers
2k views
Is is preferable to design top down or bottom up?
As I understand, top-down design is by refining the abstract high level concept into smaller concrete and comprehensible parts, until the smallest building block is defined. On the other hand, bottom ...
17
votes
3answers
1k views
Why does the Lisp community prefer to accumulate all the parentheses at the end of the function?
Why does the Lisp community prefer to accumulate all the parentheses at the end of the function:
(defn defer-expensive [cheap expensive]
(if-let [good-enough (force cheap)]
good-enough
...
17
votes
2answers
471 views
What are the typical applications of Lisp macros?
I am trying to learn some LISP and I have read a lot about the importance of LISP macros so I would like to get some working experience with them.
Can you suggest a practical application area that ...
16
votes
19answers
2k views
Programming languages with a Lisp-like syntax extension mechanism [closed]
I have only a limited knowledge of Lisp (trying to learn a bit in my free time) but as far as I understand Lisp macros allow to introduce new language constructs and syntax by describing them in Lisp ...
16
votes
7answers
2k views
Advantage of Learning Lisp for a Python Programmer
I am primarily a Python, Java, C++ programmer, and I've gained a recent interest in functional language. I'm thinking of picking up a LISP dialect: Clojure. Now, I've been working through tutorials ...
16
votes
5answers
2k views
Is there any evidence that lisp actually is better than other languages at artificial intelligence?
There seems to be a long-held belief (mainly by non-lispers) that lisp is better than most languages at AI.
Where did this belief originate? And is there any basis in fact to it?
16
votes
11answers
1k views
Is there a language offering LISP-like macros with a more complex syntax?
LISP's macros are extremely powerful constructs, and the inability to introspect and modify the program itself beyond the method signature level has always struck me as a limitation. Yet I favour ...
16
votes
3answers
1k views
Is there a canonical tutorial or book on functional programming concepts?
Coming from a procedural/OO programming background, I tend to write Scheme programs in a procedural fashion. I would be intersted in learning Scheme or Lisp in a functional way from the ground up, to ...
15
votes
2answers
1k views
In what area is LISP's macro better than Ruby's “ability” to create DSL
One of things that makes Ruby shine is the ability to create Domain Specific Languages better, like
Sinatra
Rspec
Rake
Ruby on Rails' ActiveRecord
Though one can duplicate these libraries in LISP ...
14
votes
2answers
654 views
Which Common Lisp implementation to use?
There seems to be an immediate problem with starting to develop in Common Lisp: choosing an implementation. What should one take into account, and how much weight should it bear when considering a CL ...
13
votes
5answers
764 views
How useful are Lisp macros?
Common Lisp allows you to write macros that do whatever source transformation you want.
Scheme gives you a hygienic pattern-matching system that lets you perform transformations as well. How useful ...
12
votes
3answers
318 views
Why is the c family the standard CS study regiment for Mathematics/CS programs instead of the LISP family?
I have been familiarizing myself with LISP for self improvement purposes. One of the things I have noticed is that LISP is much more within the paradigm of Mathematics than say C. The syntax and ...
12
votes
5answers
1k views
What is a recent programming language of choice for the AI?
For a few decades the programming language of choice for AI was either Prolog or LISP, and a few more others that are not so well known. Most of them were designed before the 70's.
Changes happens a ...
11
votes
7answers
3k views
LISP : What would be the best editor of choice for a newbie (other than Emacs)? [closed]
I'm looking to learn LISP, and I'm looking for a good editor, which I don't have to learn from scratch (mentioning it as I'm totally unfamiliar with Emacs). I'm a more/less proficient VIM user, and am ...
11
votes
9answers
1k views
Greenspun's Tenth Rule, does every large project include a Lisp interpreter?
Greenspun's tenth rule (actually the only rule) states that:
Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of ...
11
votes
3answers
2k views
On the path to Enlightenment: Scheme, Common Lisp, Clojure? [closed]
A lot of people smarter than me keep writing about when you learn Lisp it makes you a better programmer because you "get it".
Maybe all I hear about Lisp(s) changing your life is just a big practical ...
11
votes
3answers
316 views
Why does the iterative version take longer?
I was looking over at http://programming.lispdream.com/blog/2011/06/recursion-vs-iteration/ and I saw that on his implementation of the recursive and iterative implementations of the factorial ...
10
votes
8answers
667 views
Choosing between CL and Python for web development
I'm coming from a Java / PHP background and after I read this little essay by Paul Graham I started wondering about picking up a new language namely Common Lisp to speed up my work (I'm a web ...
10
votes
2answers
783 views
Is IronScheme complete enough or stable enough to be worth learning?
IronScheme is mentioned on Wikipedia as a successor to a failed project called IronLisp, bringing Lisp to CLR and .NET, the way Clojure does for the JVM. Does anyone have experience with this ...
10
votes
4answers
643 views
What should I learn from Scheme?
I was wondering what unique features I can learn from Scheme that would help me become a better programmer?
I have a lot experience in mainstream languages, and I am looking to expand my horizons ...
10
votes
2answers
436 views
Strategy / resources for writing LISP webservices?
Background: I'm looking to write some fully functional webservices in Common Lisp as an April Fools prank on the rest of the development team at my company.
There are two pieces to this: reading info ...
9
votes
4answers
1k views
In what programming language did “let” first appear?
I was wondering about the origins of the "let" used in Lisp, Clojure, and Haskell. Does anyone know which language it appeared in first?
9
votes
3answers
357 views
Making LISPs manageable
I am trying to learn Clojure, which seems a good candidate for a successful LISP. I have no problem with the concepts, but now I would like to start actually doing something.
Here it comes my ...
9
votes
3answers
399 views
Byte code weaving vs Lisp macros
I have been reading about the libraries people have written for languages like Java and C# that make use of byte code weaving to do things like intercept function calls, insert logging code, etc. I ...
9
votes
4answers
2k views
Example of where Functional Programming is Superior to Imperative or Object-Oriented Programming? [duplicate]
Possible Duplicate:
Which problems domains are more suited to functional programming solutions
I've been reading about functional programming. I've been using mostly C#.net recently, and ...
8
votes
3answers
422 views
What is the difference between a stock-hardware and a micro-coded machine in “A Critique of Common Lisp”?
I was reading this article: A Critique of Common Lisp and finding it hard to make out the precise definition of "stock-hardware machine" and its difference with "micro-coded" machines. I tried to ...
8
votes
9answers
573 views
Resources for improving your comprehension of recursion? [closed]
I know what recursion is (when a patten reoccurs within itself, typically a function that calls itself on one of its lines, after a breakout conditional... right?), and I can understand recursive ...
8
votes
5answers
922 views
Data structures in functional programming
I'm currently playing with LISP (particularly Scheme and Clojure) and I'm wondering how typical data structures are dealt with in functional programming languages.
For example, let's say I would like ...
8
votes
1answer
526 views
What are the essential Clojure libraries to learn beyond the basics of “core”
I am teaching myself Clojure. I've started using Leiningen, I'm working on Clojure Koans, plan to do LabREPL next, and will have a look at Noir.
My question is: what are the essential "must know" ...
7
votes
2answers
517 views
Could we build a functional computer?
As mush as FP has done, in the end, all our programs are structured.
That is, it doesn't matter how pure or functional we make a them - they are always translated to assembly,
so what actually runs ...
6
votes
5answers
536 views
Wrapping my mind around prefix notation?
I'm reading about LISP.
I understand how prefix notation works at a certain level, but I was wondering if there are any tricks to making it intuitive.
6
votes
2answers
270 views
S-expressions readability
In a nutshell and for those who didn't know it, Lisp functions/operators/constructs are all uniformly called like this:
(function arg0 arg1 ... argN)
So what in a C-like language you would express ...
6
votes
2answers
778 views
normal order evaluation -vs- applicative order evaluation
I am going through Abelson and Sussman (Structure and Interpretation
of Computer Programs) and I am a little confused about when normal order evaluation is used and when applicative order evaluation ...
5
votes
6answers
327 views
Do non-pure interpreters still make the guarantees of functional programming?
I am assuming the implementations/compilers/generated C code (referred to hereinafter as generic, 'interpreter') for most functional programming languages are written in non-pure functional languages. ...
5
votes
6answers
507 views
Challenges for the experienced coder to learn functional programming?
What are the challenges that an experienced programmer with the usual C++/UNIX background would face when trying to learn functional programming? The main motive for learning is to gain a fresh ...
5
votes
2answers
200 views
Are square brackets and curly braces in Clojure still S-expressions?
I am trying to learn Lisp and looking at all the Lisps out there and their differences.
I see that in some implementations of Scheme, you can use square brackets interchangeably with round brackets ...
5
votes
2answers
167 views
Can the Clojure set and maps syntax be added to other Lisp dialects?
In addition to create list using parentheses, Clojure allows to create vectors using [ ], maps using { } and sets using #{ }.
Lisp is always said to be a very extensible language in which you can ...
5
votes
2answers
245 views
Is the Lisp “family” of languages any more closely related than the “C-like-syntax” family?
I was recently thinking about the large variety of lisp languages, specifically the fact that while they all have similar syntax, and could all in theory be implemented from the same small set of ...
