Questions tagged [common-lisp]

Common Lisp, or ANSI Common Lisp, is a standardized version of the Lisp programming language intended for production-strength power and libraries.

ANSI Common Lisp, the programmable programming language.

We have a Wikipedia page on Common Lisp, an online version of the ANSI Common Lisp standard and a list of recommended Common Lisp implementations. Many Lisp specific mailing lists are archived at Gmane.

Popular Common Lisp implementations

See also

27 questions
116
votes
15 answers

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++, which made me curious enough to know more about…
48
votes
2 answers

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 implementation? Should it conform to the ANSI…
anonymous
  • 597
34
votes
2 answers

Which of these old criticisms of common lisp still apply today?

In A Critique of Common Lisp written by Rodney A. Brooks and Richard P. Gabriel from Stanford in 1984, some design decisions retained by the normalizing committee of Common Lisp are discussed. While most of the discussion remains valid, there are…
user40989
  • 2,940
22
votes
4 answers

What about LISP, if anything, makes it easier to implement macro systems?

I'm learning Scheme from the SICP and I'm getting the impression that a big part of what makes Scheme and, even more so, LISP special is the macro system. But, since macros are expanded at compile-time, why don't people make equivalent macro systems…
13
votes
2 answers

Are types erased in Haskell?

Haskell has a notion of “generic functions” that has some apparent similarity with common lisp—having neither experience with Haskell nor with common lisp, I might be very approximative here. This means that one can define a generic to_string…
user40989
  • 2,940
10
votes
2 answers

Types in Lisp and Scheme

I see now that Racket has types. At first glance it seems to be almost identical to Haskell typing. But is Lisp's CLOS covering some of the space Haskell types cover? Creating a very strict Haskell type and an object in any OO language seems vaguely…
8
votes
2 answers

In which order should lisp functions be defined?

In which order should code in a single lisp file be organised? Is there any common style guideline that allows other lisp programmers to easily understand code? Googling for lisp style guideline yields plenty results; among them: Common Lisp Style…
8
votes
3 answers

Multiple Dispatch and CLOS

I have never written software in Common Lisp, but in Scheme and Clojure as well as C++ and Python. Yet I have had a look at the Common Lisp Object System (CLOS) in Common Lisp and Dylan. Now when comparing it to OOP in the Simula tradition, CLOS and…
wirrbel
  • 3,068
  • 2
  • 23
  • 34
8
votes
4 answers

What makes Common Lisp "big"?

I've been learning both Common Lisp and Racket, and one thing that I consistently hear is that Racket is a much "smaller" language than Common Lisp. I was wondering what this really meant. As far as I can tell, the syntax for Common Lisp isn't that…
user91264
7
votes
3 answers

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 search for a precise definition of the former to no…
6
votes
1 answer

`values` vs `list` for returning multiple values from Lisp form

What's the difference between using (values …) versus (list …) (or literally '(one two three …)) to return multiple values from a lambda (or other implicit progn)? Does it create some special glue to multiple-value-bind? Superficially, I can't see…
RubyTuesdayDONO
  • 171
  • 1
  • 6
6
votes
1 answer

Common Lisp Implementations - threading and multiplatform?

I'm learning Common Lisp, mostly as a "mind gym" hobby thing, but I want to end up with a set of skills that would also be usable "in real life", because when you learn a language you also accumulate knowledge about module and package management,…
NeuronQ
  • 221
5
votes
2 answers

Is there any practical use for the empty type in Common Lisp?

The Common Lisp spec states that nil is the name of the empty type, but I've never found any situation in Common Lisp where I felt like the empty type was useful/necessary. Is it there just for completeness sake (and removing it wouldn't cause any…
4
votes
1 answer

Best Practice - Where to declare variables in Common Lisp?

Generally in procedural/imperative languages, it's best practice to place variable declarations as close to usage as possible. This seems a little hazy in lisp, considering more code is used if there are separate lets. Given an example function…
4
votes
1 answer

Use `labels` or nested `flet`?

I have a hierarchy of functions, many functions are called by a single function. There are three options: Use defun: i.e. all functions are global even the ones that are only intended for internal use by a single function. Use a package to export…
1
2