An efficient, statically typed functional programming language that integrates directly into Common Lisp.
Coalton is a statically typed functional programming language that integrates directly into Common Lisp. It adds compile-time type checking and functional programming features like algebraic data types and pattern matching to Common Lisp, enabling the development of robust, high-performance software while preserving Lisp's interactive REPL and debugging tools.
Common Lisp developers seeking to add static typing and functional programming paradigms to their codebases, particularly those working on performance-critical or safety-critical applications like defense or quantum computing software.
Developers choose Coalton because it uniquely combines static type safety and functional programming expressiveness with seamless Common Lisp interoperability, allowing mixed usage and leveraging existing Lisp tooling without sacrificing interactive development.
Coalton is an efficient, statically typed functional programming language that supercharges Common Lisp.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides compile-time type checking with beautiful error messages that catch bugs early, as shown in the differentiation example where type mismatches are clearly flagged.
Embeds directly into Common Lisp codebases, allowing mixed usage and leveraging existing Lisp tooling and the REPL, demonstrated by the interactive code snippets.
Supports algebraic data types, pattern matching, and parametric polymorphism for safe, expressive code, evident in the Expr type definition and diff function implementation.
Used in real-world applications like defense and quantum computing software, indicating robustness and performance in critical domains.
The project has not reached version 1.0, leading to potential breaking changes and a substandard user experience, as warned in the README's warning note.
Only tested on specific Common Lisp implementations like SBCL, Allegro CL, and Clozure CL, which may restrict portability and increase setup friction.
Requires installation of dependencies like GNU MPFR for tests and integration with Quicklisp, adding overhead compared to more mature languages.