this post was submitted on 10 Aug 2023
7 points (100.0% liked)
Lisp Community
858 readers
1 users here now
A community for the Lisp family of programming languages.
Lisp (historically LISP) is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1958, Lisp is the second-oldest high-level programming language. Only Fortran is older, by one year.
Related communities
- Clojure (lemmy.ml)
- Clojure (programming.dev)
- Lisp (programming.dev)
- Scheme (lemmy.ml)
- Scheme (programming.dev)
- Guix (lemmy.ml)
- Guix (infosec.pub)
- Emacs (lemmy.ml)
Language references
- Common Lisp
- Scheme
- Racket
- Clojure
Tools
- IDEs for CL
- Quicklisp (CL Library manager), Qlot (project-local library manager)
- ocicl (new library manager)
- Roswell (CL Environment Setup Utility)
Tutorials/FAQS
- lisp-lang.org
- The Common Lisp Cookbook
- Style Guide Norvig/Pitman
- Nikodemus' CL FAQ
- Google CL Style Guide (2014)
- A Road to Common Lisp (2018) (noob guide)
- Udemy Common Lisp course (videos, commercial)
- State of the CL Ecosystem 2022 · 2020 · 2015
- Where to get help with Common Lisp
Useful Lisp resources
- Common-Lisp.net
- Awesome CL (CL libraries)
- Planet Lisp
- Planet Scheme
- comp.lang.lisp
- CL Professionals Mailing List
- Lisp companies
- Wikipedia CL
- Stackoverflow Lisp questions, CL, Scheme
- Code Review (Lisp, CL, Scheme)
- Rosetta Code, CL
- Mailing Lists, more
- ANSI Clarifications and Errata
Search
Videos
Common Lisp
Clojure
Racket
Scheme
- MIT's SICP lectures
Books
- Free, Complete, On-line, Authorized
- Common Lisp: A Gentle Introduction to Symbolic Computation (Touretzky, 1990)
- Common Lisp: An Interactive Approach (Shapiro, 1992)
- The Common Lisp Cookbook / Original 2007
- Common Lisp The Language, 2nd Edition [Pre ANSI] (Steele, 1990)
- How to Design Programs (Felleisen, Findler, Flatt, Krishnamurthi)
- Lisp Outside the Box (unfinished, Levine, 2011)
- On Lisp (Graham, 1993)
- Paradigms of Artificial Intelligence Programming (Norving, 1992)
- Practical Common Lisp (Seibel, 2005)
- Programming Languages: Application and Interpretation (Scheme) (Shriram Krishnamurthi, 2007-2020)
- The Scheme Programming Language (Scheme) (R. Kent Dybvig, 2009)
- Structure and Interpretation of Computer Programs, HTML5/EPUB3 (Scheme) (Abelson/Sussman, 1996)
- Other Books
- ANSI Common Lisp (Graham, 1995)
- Common Lisp Recipes (Weitz, 2016)
- Land of Lisp (Barski, 2010)
- Let over Lambda (Hoyte, 2008)
- Lisp, 3rd Edition (Winston/Horn, 1989)
- Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS (Keene, 1989)
- The Art of the Metaobject Protocol (Kiczales/des Rivières/Bobrow, 1991)
- Essential LISP (Anderson/Reiser/Corbett, 1986)
Food for thought
- An Intuition for Lisp Syntax
- Lambda the Ultimate
- Erik Naggum comp.lang.lisp archive
- Pascal Costanza's Highly Opinionated Guide to Lisp
Implementations
- CL Open Source
- CL Commercial
- Allegro CL
- LispWorks multiplatform, iOS and Android
- CL Developmental
- CL Historical
- mocl for OSX, iOS and Android
- Open Genera
- Scieneer CL
- CLiCC (CL→C)
- Corman Lisp (MS-Windows)
- Eclipse Common Lisp
- MKCL (fork of ECL)
- ThinLisp (CL→C)
- WCL (embeddable)
- Scheme TODO
Events
founded 6 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I'm a hobbyist, I don't use common lisp professionally, but it has become my go-to tool for little personal projects and puzzles (like Project Euler or Advent of Code). The interactive development (mentioned in the article) is one of the primary reasons.
I find it so fun to build with. You can write functions and immediately test and interact with them in the repl, and then build on them from there. You can compile code at a granular level - for example you can recompile a function rather than the entire source file. This is helpful if some stuff is still being worked out and would produce compile time errors.
Occasionally I've gotten into a weird place because of the evolution of my code and incremental changes along the way while running a program. When I stop and completely reload a program, it behaves differently from what I previously experienced. It is something additional to keep in mind when interactively modifying a program.
The debugger experience with Emacs/Slime is the best I've experienced (professionally I've used various versions of Visual Studio, and as a hobbyist, various open source IDEs.)
The programs I have written are simple. Some day I would like to grok CLOS and the condition system.
@ItsJason @cadar I've been doing Common Lisp for 20+ years also as a hobbyist and I'm somewhat familiar with CLOS and not really with the condition system 😅
Not that it's difficult, I wouldn't know, but it hasn't been necessary for the kind of programs I write... apparently.