Practical Common Lisp

Last updated

Practical Common Lisp is an introductory book on the programming language Common Lisp by Peter Seibel. [1] It features a fairly complete introduction to the language interspersed with practical example chapters, which show developing various pieces of software [2] [3] such as a unit testing framework, a library for parsing ID3 tags, a spam filter, and a SHOUTcast server. [4]

Contents

At the Jolt Product Excellence and Productivity Awards in 2006, it won a Productivity Award in the technical book category. [5]

The full text is available online. [6] In a 2006 Google TechTalk, Seibel presented the book's main points in the context of linguistic relativity (the Sapir–Whorf hypothesis). [7]

See also

Related Research Articles

Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (S20018). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived from the ANSI Common Lisp standard.

In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program.

Lisp (programming language) Programming language family

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. Lisp has changed since its early days, and many dialects have existed over its history. Today, the best-known general-purpose Lisp dialects are Racket, Common Lisp, Scheme, and Clojure.

Martin Fowler (software engineer) American software developer, author and international public speaker on software development

Martin Fowler is an American-resident British software developer, author and international public speaker on software development, specialising in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming.

Ruby is an interpreted, high-level, general-purpose programming language which supports multiple programming paradigms. It was designed with an emphasis on programming productivity and simplicity. In ruby, everything is an object, including primitive data types. It was developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.

Slashdot is a social news website that originally billed itself as "News for Nerds. Stuff that Matters". It features news stories on science, technology, and politics that are submitted and evaluated by site users and editors. Each story has a comments section attached to it where users can add online comments. The website was founded in 1997 by Hope College students Rob Malda, also known as "CmdrTaco", and classmate Jeff Bates, also known as "Hemos". In 2012, they sold it to DHI Group, Inc.. In January 2016, BIZX acquired both slashdot.org and SourceForge. In December 2019, BIZX rebranded to Slashdot Media.

Jamie Zawinski, commonly known as jwz, is an American impresario, computer programmer, and blogger. He is best known for his role in the creation of Netscape Navigator, Netscape Mail, Lucid Emacs, Mozilla.org, and XScreenSaver. He is also the proprietor of DNA Lounge, a nightclub and live music venue in San Francisco.

Maxima (software)

Maxima is a computer algebra system (CAS) based on a 1982 version of Macsyma. It is written in Common Lisp and runs on all POSIX platforms such as macOS, Unix, BSD, and Linux, as well as under Microsoft Windows and Android. It is free software released under the terms of the GNU General Public License (GPL).

Paul Graham (programmer) English programmer, venture capitalist, and essayist

Paul Graham is an English-born American computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb, cofounding the influential startup accelerator and seed capital firm Y Combinator, his blog, and Hacker News. He is the author of several computer programming books, including: On Lisp (1993), ANSI Common Lisp (1995), and Hackers & Painters (2004). Technology journalist Steven Levy has described Graham as a "hacker philosopher".

Guy L. Steele Jr. American computer scientist (born 1954)

Guy Lewis Steele Jr. is an American computer scientist who has played an important role in designing and documenting several computer programming languages and technical standards.

Greenspun's tenth rule of programming is an aphorism in computer programming and especially programming language circles that states:

Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

Apress

Apress Media LLC is a publisher of information technology books based in New York City. It is a division of Springer Nature.

Common Lisp Interface Manager

The Common Lisp Interface Manager (CLIM) is a Common Lisp-based programming interface for creating user interfaces, i.e., graphical user interfaces (GUIs). It provides an application programming interface (API) to user interface facilities for the programming language Lisp. It is a fully object-oriented programming user interface management system, using the Common Lisp Object System (CLOS) and is based on the mechanism of stream input and output. There are also facilities for output device independence. It is descended from the GUI system Dynamic Windows of Symbolics' Lisp machines between 1988 and 1993.

... you can check out Common Lisp Interface Manager (CLIM). A descendant of the Symbolics Lisp machines GUI framework, CLIM is powerful but complex. Although many commercial Common Lisp implementations actually support it, it doesn't seem to have seen a lot of use. But in the past couple years, an open-source implementation of CLIM, McCLIM – now hosted at Common-Lisp.net – has been picking up steam lately, so we may be on the verge of a CLIM renaissance. – From Practical Common Lisp

In software development, a leaky abstraction is an abstraction that leaks details that it is supposed to abstract away.

Multics Emacs Text editor for the Multics operating system

Multics Emacs is an early implementation of the Emacs text editor. It was written in Maclisp by Bernard Greenberg at Honeywell's Cambridge Information Systems Lab in 1978, as a successor to the original 1976 TECO implementation of Emacs and a precursor of later GNU Emacs.

Joshua Bloch American software engineer

Joshua J. Bloch is an American software engineer and a technology author, formerly employed at Sun Microsystems and Google. He led the design and implementation of numerous Java platform features, including the Java Collections Framework, the java.math package, and the assert mechanism. He is the author of the programming guide Effective Java (2001), which won the 2001 Jolt Award, and is a co-author of two other Java books, Java Puzzlers (2005) and Java Concurrency In Practice (2006).

Clojure Dialect of the Lisp programming language on the Java platform

Clojure is a dynamic and functional dialect of the Lisp programming language on the Java platform. Like other Lisp dialects, Clojure treats code as data and has a Lisp macro system. The current development process is community-driven, overseen by Rich Hickey as its benevolent dictator for life (BDFL).

Ken Thompson American computer scientist, creator of the Unix operating system

Kenneth Lane Thompson is an American pioneer of computer science. Thompson worked at Bell Labs for most of his career where he designed and implemented the original Unix operating system. He also invented the B programming language, the direct predecessor to the C programming language, and was one of the creators and early developers of the Plan 9 operating system. Since 2006, Thompson has worked at Google, where he co-developed the Go programming language.

AllegroGraph is a closed source triplestore which is designed to store RDF triples, a standard format for Linked Data. It also operates as a document store designed for storing, retrieving and managing document-oriented information, in JSON-LD format. AllegroGraph is currently in use in commercial projects and a US Department of Defense project. It is also the storage component for the TwitLogic project that is bringing the Semantic Web to Twitter data.

Pandorabots, Inc. is an artificial intelligence company that runs a web service for building and deploying chatbots. According to its website, as of May 2019, 250,000+ registered developers have used the platform to create 300,000+ chatbots, logging over sixty billion conversational interactions with end-users. Pandorabots implements and supports development of the AIML open standard and makes portions of its code accessible for free under licenses like the GPL or via open APIs. The Pandorabots Platform is "one of the oldest and largest chatbot hosting services in the world." Clients can create "AI-driven virtual agents" to hold human-like text or voice chats with consumers.

References

  1. Seibel, Peter (2005). Practical Common Lisp. Springer Nature: Apress. ISBN   978-1-59059-239-7.
  2. Buss, Frank (2005-04-28). "Practical Common Lisp". Slashdot. SlashdotMedia. Retrieved 2019-11-26.
  3. H., Ed (2005-11-27). "Thoughts Reading Practical Common Lisp". The Blog That Goes Ping. WordPress. Retrieved 2019-11-26.
  4. Staiger, Josh (2006-02-15). "A short review of Peter Seibel's Practical Common Lisp". Josh Staiger. Retrieved 2019-11-26.
  5. Siivola, Nikodemus; Upham, Derek; Seibel, Peter; Inoka; Mastenbrook, Brian; Reid, Kevin; Ozten; Kaufmann, Roland (2004–2017). "Practical Common Lisp". CLiki. The Common Lisp Foundation. Retrieved 2019-11-26.
  6. Seibel, Peter (2005). Practical Common Lisp. Springer Nature: Apress. ISBN   1590592395.
  7. Peter Seibel (2006-05-10). Practical Common Lisp (Video). Mountain View, California: Google. Archived from the original on 2021-12-14. Retrieved 2019-11-27.