language extension
Language extensions are libraries that are not domain-specific (that is, just concern themselves with "programming" as opposed to "implementing algorithm/datastructure/service x"), widely usable, and could potentially be candidates for Proposed Extensions To ANSI, but are wider in scope than utilities. Examples would be new object systems, CPS-transformers, etc.
Since Common Lisp is the "programmable programming language," many of these extensions are quite far-reaching.
- AmOS - AmOS (Ambient Object System) is an object-based computation model aimed at supporting highly dynamic behaviour adaptation to changing contexts
- CAPTURED-STREAM - CAPTURED-STREAM is a small Common Lisp library for viewing streams as sequences
- CL Enumerations - CL-ENUMERATIONS package is an implementation of java
- cl-annot - cl-annot adds Python-like decorators (or Java-like annotations) to Common Lisp
- cl-cmp - cl-cmp provides an object-equals generic function, an object-less-than generic function, and methods that do The Appropriate Thing for the default classes in Common Lisp
- cl-cont - cl-cont is a delimited continuations library for Common Lisp
- cl-hooks - cl-hooks allows the description of extension points in software using a concept of hooks (borrowed from Emacs)
- cl-op - cl-op is a partial application library inspired by Goo's op function and SRFI 26
- cl-package-aliases - cl-package-aliases extends the standard CL package system with the ability to define package-local aliases (nicknames) to other packages in a transparent way
- CLLIB - CLLIB is a varied collection of Common lisp tools and routines in CLOCC
- Clon - There are three packages by the name of "CLON", although the third one doesn't actually introduce any conflict because the package is named com
- comparisons - Comparison is a simple library adding comparison functions similar to EQUAL and EQUALP, which handle multiple types gracefully
- computed-class - A class metaobject for computed slot values and more
- conduit-packages - conduit-packages is a language extension providing some enhancements to Common Lisp's package system
- Conduits - Conduits allows the creation of extended packages that may dynamically share symbols with other packages, thus extending them
- ContextL - ContextL is a language extension for Context-oriented Programming
- DBC - DBC is a library for doing Design By Contract ala the Eiffel programming language in Common Lisp
- dynamic-classes - Dynamic-Classes lets you specify CLOS classes (for example, as arguments to make-instance) using parameters at run-time, letting you use mixins more conveniently
- gecol - gecol provides bindings to GECODE in order to enjoy constraint programming in Lisp
- General accumulator - General-purpose, extensible value accumulator library
- ITERATE - iterate is a lispy and extensible replacement for the LOOP macro
- KR - Knowledge Representation is a highly flexible and dynamic prototype-based object system for Common Lisp
- Loopless - Loopless is a Common Lisp library that obsoletes LOOP with just a few straightforward utilities
- memoize - Memoize is a small library for performing memoization
- memoize-form - A simpler need than memoizing the results of a function with arguments is that of memoizing the results of a form
- metacopy - Metacopy is a library that makes it easy to specify how to make copies of an object
- MW-EQUIV - MW-EQUIV provides one of many possible equivalence relations between Common Lisp objects, similar to the standard EQUAL function family, but extensible
- named-readtables - Named-Readtables is a language extension library that provides a namespace for readtables akin to the
- org-no-carrier-tail-funcall - A library to provide portable tail-call merging
- pygen - pygen - Python-style generators library
- Screamer - Screamer is a language extension that adds support for nondeterministic programming, including backtracking and undoable side-effects, and includes a constraint programming language
- Series - Series is a library for operating on series, a data structure similar to a sequence
- Sheeple - Sheeple is a delegative prototype-based object system inspired by CLOS
- SRFI - Scheme Requests for Implementation (SRFI) are proposed language extensions to Scheme, but that doesn't stop people from implementing them for Common Lisp
- SW-MVC - sw-mvc provides dataflow? paradigm support for Common Lisp as a language extension
- xarray - xarray is a generalized interface for array-like objects with views
Pattern matching: (main topic: pattern matching)
- arnesi - arnesi is a collection of utilities written by Marco Baringer
- bind - Bind combines let*, destructuring-bind and multiple-value-bind into a single form
- bpm2 - bpm2 is a pattern matching language originally designed for doing code transformation [ie, writing compilers] it's being pulled off the dusty shelf to take on a second life [we hope!] as a utility for validating data objects floating around inside a web application [such as the stuff coming in and out of cl-json and the stuff given to djula templates]
- cl-match - extended ML-style pattern matching library
- cl-pattern - cl-pattern is a very fast ML-like pattern matching library for Common Lisp
- cl-unification - CL-Unification is a full blown unification library, supporting unification over any Common Lisp objects (and not just lists and atoms)
- cl-xmlspam - XML Stream PAttern Matcher - concise, regexp-like pattern matching on streaming XML
- fare-matcher - fare-matcher extends CL with ML-like pattern matching in an extensible way
- let-plus - LET+ extends let* with destructuring forms for lists and vectors, slot access for structures and classes, convenient forms for short functions, property list and hash table elements, and various other constructs, with a consistent interface that supports editor hints via placeholder macros
- MCPat - MCPat is a meta-circular pattern matching library
- pcond - PCOND is a conditional macro that does pattern matching, supporting Lisp predicates, regular expressions, and unification expressions
- Screamer - Screamer is a language extension that adds support for nondeterministic programming, including backtracking and undoable side-effects, and includes a constraint programming language
- SPath - SPath is a library for running search queries against s-expressions, intended to match parts of them that the user needs
- Toadstool - Toadstool is a library for pattern matching
Metaprogramming: (main topic: metaprogramming)
- cl-cont - cl-cont is a delimited continuations library for Common Lisp
- cl-walker - cl-walker (home page) implements an sexp => CLOS AST tree transformation (and vice versa)
- de.setf.utility - de setf utility is a collection of Common Lisp utilities functions and several purpose-specific libraries
- macroexpand-dammit - macroexpand-dammit is a code walker by John Fremlin
- parse-declarations - Parse-Declarations is a metaprogramming library to parse, filter, and build Common Lisp declarations (things like (inline foo))
Pages in this topic: AmOS CAPTURED-STREAM CL Enumerations cl-annot cl-cmp cl-cont cl-hooks cl-op cl-package-aliases CLLIB Clon comparisons computed-class conduit-packages Conduits ContextL DBC dynamic-classes gecol General accumulator ITERATE KR Loopless memoize memoize-form metacopy MW-EQUIV named-readtables org-no-carrier-tail-funcall pygen Screamer Series Sheeple SRFI SW-MVC xarray
Also linked from: index
CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively