Idris (programming language)

Idris is a purely-functional programming language with dependent types, optional lazy evaluation, and features such as a totality checker. Idris may be used as a proof assistant, but is designed to be a general-purpose programming language similar to Haskell.

Idris
ParadigmFunctional
Designed byEdwin Brady
First appeared2007 (2007)
Stable release
1.3.4 / October 22, 2021 (2021-10-22)
Preview release
0.6.0 (Idris 2) / October 28, 2022 (2022-10-28)
Typing disciplineInferred, static, strong
OSCross-platform
LicenseBSD
Filename extensions.idr, .lidr
Websiteidris-lang.org
Influenced by
Agda, Clean, Coq, Epigram, F#, Haskell, ML, Rust

The Idris type system is similar to Agda's, and proofs are similar to Coq's, including tactics (theorem proving functions/procedures) via elaborator reflection. Compared to Agda and Coq, Idris prioritizes management of side effects and support for embedded domain-specific languages. Idris compiles to C (relying on a custom copying garbage collector using Cheney's algorithm) and JavaScript (both browser- and Node.js-based). There are third-party code generators for other platforms, including Java virtual machine (JVM), Common Intermediate Language (CIL), and LLVM.

Idris is named after a singing dragon from the 1970s UK children's television program Ivor the Engine.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.