Idris Dependent Type Programming Language
idris-lang.org
2
Leaving SiteNav
External Link Disclaimer
You are about to visit idris-lang.org. This website is not operated by us. We are not responsible for its content or privacy practices.
About this website
Idris is a general-purpose purely functional programming language with full dependent types, merging mathematical expressiveness with practical software development. Created by Edwin Brady at the University of St Andrews starting in 2007, Idris is designed to be a production-ready language that demonstrates the benefits of dependent types in real-world programming. Key features: full dependent types enabling types that depend on values, allowing programmers to express complex program properties and invariants directly in the type system. Total functions: the type system can verify that a function terminates for all inputs, guaranteeing totality for critical code paths. Interactive theorem proving via tactics in the style of Coq and Agda, allowing mathematical proofs as programs. Quantitative Type Theory (QTT) in Idris 2 for tracking resource usage at the type level, enabling linear types for managing resources like file handles and network connections. Pattern matching with coverage checking ensuring all cases are handled. Effect system for managing side effects with explicit tracking of which effects a computation may use. Records with dependent fields and type-level computation. Foreign function interface (FFI) for calling C code and interoperating with external libraries. Code generation via a multi-target backend supporting Scheme, JavaScript, and C. Idris 2 is itself implemented in Idris 2 (self-hosting), demonstrating the language practicality. totality checker, erasure analysis, and elaborator reflection for metaprogramming. Interactive editing support in Emacs and VS Code. Used in research, formal verification, and teaching dependent type theory.
Statistics
2
Views
0
Clicks
0
Like
0
Dislike