I hear "dependent types" and I think "theorem prover", but it seems like Idris is a cleaned up Haskell with some light proving features built in?
Haskell is good for compilers and parsers. What's a good excuse to try Idris?
I hear "dependent types" and I think "theorem prover", but it seems like Idris is a cleaned up Haskell with some light proving features built in?
Haskell is good for compilers and parsers. What's a good excuse to try Idris?
It's a full-strength dependent type theory, but is intended primarily for use as a programming language. So the design focus is on using full dependent types to make ordinary programming easier.
> What's a good excuse to try Idris?
The best excuse of all: it is super fun.
I think one of the biggest advantages of dependent typing is that it lets you implement a lot of things that other languages need to add as ad-hoc language features. A good example (if you're familiar with Haskell) is typeclasses. These can be done entirely at the value level in Idris, and IIRC interfaces are just syntactic sugar over this implementation. Other examples are generics that depend on values instead of types (without resorting to tedious things like type-level integers) and cleaner replacements for a lot of macro functionality.
[1]: http://docs.idris-lang.org/en/latest/tutorial/interp.html
While true, the same applies to any other language in the ML family.