Content deleted Content added
add logo and a features section |
reference on creation, additional details |
||
Line 33:
'''Coalton''' is a [[functional programming|functional]], [[static typing|statically typed]], [[General-purpose programming language|general-purpose]] [[programming language]] embedded in [[Common Lisp (programming language)|Common Lisp]]. Its type system is similar to Haskell's, but evaluation is strict like Standard ML or OCaml. [[Metaprogramming]] is supported through traditional Lisp [[Macro (computer science)|macros]]. Coalton focuses on performance through efficient data representation and compiler optimization<ref>https://www.youtube.com/watch?v=of92m4XNgrM</ref>.
''Coalton'' refers to both the language and its implementation, and remains under active, open-source development as of July 2025<ref>https://github.com/coalton-lang/coalton</ref>.
== History ==
Robert Smith
Coalton is used<ref>https://meetings.aps.org/Meeting/MAR23/Session/F70.8</ref> at [[HRL Laboratories]] for building software for qubits based on exchange-only [[Silicon quantum dot|silicon dots]].
Line 44:
* Static typing with global type inference.
*
* Multi-parameter type classes with functional dependencies.
* Machine code compilation (on Lisp hosts that support it).
* Compiler optimizations including heuristic inlining and user-controlled inlining with the <code>inline</code> directive.
* User-controllable function monomorphization with the <code>monomorphize</code> directive.
* User-controller data type representation control with the <code>repr</code> directive.
* Separate development and release modes. Release mode enables greater compiler optimization opportunities at the expense of development interactivity.
* Non-allocating <code>Optional</code> data type (cf. Haskell's <code>Maybe</code> or OCaml's <code>Option</code>).
* Inline Common Lisp code with the <code>lisp</code> operator.
* Metaprogramming via ordinary <code>defmacro</code>.
* Advanced numerical data types including [[dual number|dual numbers]], hyper dual numbers, computable real numbers, and arbitrary precision floating point numbers.
|