Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Kind | 3,058 | 3 days ago | 44 | mit | Rust | |||||
A next-gen functional language | ||||||||||
Write You A Haskell | 2,744 | 3 years ago | 21 | mit | Haskell | |||||
Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/) | ||||||||||
Magic In Ten Mins | 644 | 2 months ago | 2 | cc-by-4.0 | HTML | |||||
十分钟魔法练习 | ||||||||||
Fp Core.rs | 644 | 3 years ago | 25 | mit | Rust | |||||
A library for functional programming in Rust | ||||||||||
Plam | 430 | 2 years ago | 4 | mit | Haskell | |||||
An interpreter for learning and exploring pure λ-calculus | ||||||||||
Lambda | 287 | 3 years ago | 1 | JavaScript | ||||||
🔮 Estudos obscuros de programação funcional | ||||||||||
Lambda Talk | 246 | 3 years ago | mit | JavaScript | ||||||
A Flock of Functions: Combinators, Lambda Calculus, & Church Encodings in JS | ||||||||||
Curryhoward | 232 | 2 years ago | 15 | August 23, 2021 | 5 | apache-2.0 | Scala | |||
Automatic code generation for Scala functions and expressions via the Curry-Howard isomorphism | ||||||||||
Cognate | 164 | 3 months ago | 4 | bsd-2-clause | C | |||||
A human readable quasi-concatenative programming language | ||||||||||
Y Combinator For Non Programmers | 145 | 3 months ago | TypeScript | |||||||
🍱 Y Combinator for Non-programmers: A Wild Introduction to Computer Science |
Kind is a pure functional programming language and proof assistant.
Getting started • Examples • Installation
It is a complete rewrite of Kind1, based on HVM, a lazy, non-garbage-collected and massively parallel virtual machine. In our benchmarks, its type-checker outperforms every alternative proof assistant by a far margin, and its programs can offer exponential speedups over Haskell's GHC. Kind2 unleashes the inherent parallelism of the Lambda Calculus to become the ultimate programming language of the next century.
Pure functions are defined via equations, as in Haskell:
// Applies a function to every element of a list
Map <a> <b> (list: List a) (f: a -> b) : List b
Map a b Nil f = Nil
Map a b (Cons head tail) f = Cons (f head) (Map tail f)
Theorems can be proved inductively, as in Agda and Idris:
// Black Friday Theorem. Proof that, for every Nat n: n * 2 / 2 == n.
BlackFridayTheorem (n: Nat) : Equal Nat (Nat.half (Nat.double n)) n
BlackFridayTheorem Nat.zero = Equal.refl
BlackFridayTheorem (Nat.succ n) = Equal.apply (x => Nat.succ x) (BlackFridayTheorem n)
For more examples, check the Wikind.
First, install Rust first, then enter:
cargo install kind2
Then, use any of the commands below:
Command | Usage | Note |
---|---|---|
Check | kind2 check file.kind2 |
Checks all definitions. |
Eval | kind2 eval file.kind2 |
Runs using the type-checker's evaluator. |
Run | kind2 run file.kind2 |
Runs using HVM's evaluator, on Rust-mode. |
To-HVM | kind2 to-hvm file.kind2 |
Generates a .hvm file. Can then be compiled to a rust crate using HVM. |
To-KDL | kind2 to-kdl file.kind2 |
Generates a .kdl file. Can then be deployed to Kindelia. |
The rust crate can be generated via HVM:
kind2 to-hvm file.kind2 > file.hvm
hvm compile file.hvm
If you need support related to Kind, email [email protected]
For Feedbacks, email [email protected]
To ask questions and join our community, check our Discord Server.