3 ms·
Lean is also a really, really good dependently typed functional programming language. If you're on the software developer/computer science side of the coin I hi
by agentultra 7y ago
Lean is also a really, really good dependently typed functional programming language. If you're on the software developer/computer science side of the coin I highly recommend looking into it. It's not only for maths research (although that is definitely a big focus of the majority of the Lean community).
I'm working on a forthcoming series of blog posts investigating FP concepts from scratch in Lean to see how it takes with the FP-curious.
The refreshing features Lean has to offer over other FP languages like Haskell is that
1. It's dependently typed which gives it a lot more flexibility to define objects that depend on types and types that depend on values, such as vectors that know their size.
2. Lean is interactive by default -- type inference is really fast, even for complex objects and functions.
From my perspective Lean is a great programming language that happens to have a theorem prover available. This, in itself, can be a great feature for code that needs to provide strong guarantees about its operational parameters.
- infogulch 7y agoHow does Prolog relate to more formal languages like Lean/Coq? Prolog (pretty easily) has dependent types [1] as well. Is there something in the language itself that would make it unsuitable as a theorem prover, or is there something it's missing? I'm trying to get a feel for Lean from the vantage of a bit of familiarity with Prolog. [1]: https://llaisdy.co.uk/2014/05/07/dependent-types-in-prolog/ https://llaisdy.co.uk/2014/05/07/dependent-types-in-prolog/
- agentultra 7y agoI'm not sure I can answer that question. I don't know enough about Prolog. I can say that your example could be encoded in Lean as a type and the definition would probably be much shorter. Does Prolog automate some of the work involved in writing a proof?