Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,19 @@
-- Our first implementation is the usual recursive definition:
def fib1 :
| 0 := 0
| 1 := 1
| (n + 2) := fib1 n + fib1 (n + 1)
-- We can give a second more efficient implementation using an auxiliary function:
def fib_aux :
| 0 a b := b
| (n + 1) a b := fib_aux n (a + b) a
def fib2 :
| n := fib_aux n 1 0
-- Use #eval to check computations:
#eval fib1 20
#eval fib2 20

View file

@ -0,0 +1,19 @@
-- Naive version
def fib1 (n : Nat) : Nat :=
match n with
| 0 => 0
| 1 => 1
| (k + 2) => fib1 k + fib1 (k + 1)
-- More efficient version
def fib_aux (n : Nat) (a : Nat) (b : Nat) : Nat :=
match n with
| 0 => b
| (k + 1) => fib_aux k (a + b) a
def fib2 (n : Nat) : Nat :=
fib_aux n 1 0
-- Examples
#eval fib1 20
#eval fib2 20