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…
TCSGrad
  • 1,362
  • 3
  • 11
  • 22
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
  • 1
  • 4
  • 3
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,860
  • 18
  • 35
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,860
  • 18
  • 35
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…
user2054900
  • 151
  • 3
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…
Kasper van den Berg
  • 2,636
  • 1
  • 16
  • 32
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,018
  • 2
  • 21
  • 33
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…
jepugs
  • 442
  • 1
  • 4
  • 10
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…
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
  • 3
  • 8
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…
Kasper van den Berg
  • 2,636
  • 1
  • 16
  • 32
4
votes
1 answer

Lisp: circular structure printing through user-defined print methods: what are the requirements?

In a Lisp dialect, I've implemented ANSI-CL-like support for printing objects such that their circular and shared structure is encoded. This is enabled by the special variable *print-circle*. Similarly to ANSI-CL, I have it working when it traverses…
Kaz
  • 3,572
  • 1
  • 19
  • 30
4
votes
0 answers

Test-first iterative development in Common Lisp environment

Given: I want to practice proper test-first, continuous delivery-style software development in Common Lisp environment. Problem: How each red-green-refactor iteration of the process should look like? How do I deploy? How do I test after I…
hijarian
  • 159
  • 8
1
2