Lean (programovací jazyk)

Z Wikipedie, otevřené encyklopedie

Lean je čistě funkcionální programovací jazyk vyvinutý v Microsoft Research. Jedná se o jazyk navržený pro formalizaci matematických tvrzení, má proto induktivní a závislostní typy. Syntakticky vychází z jazyka ML.

Přirozená čísla se například v Leanu definují takto:

inductive Nat : Type where
| zero : Nat
| succ : Nat -> Nat

Tato definice vychází z Peanovy aritmetiky.

Typy v Leanu tvoří indexovanou hierarchii, aby nedošlo k Russellovu paradoxu. Jazyk obsahuje bohatou standardní knihovnu. Zdrojový kód se překládá do jazyka C a následně do strojového kódu. Správa paměti se provádí pomocí počítání referencí.

Lean má zvláštní typ Prop pro výroky, který je v hierarchii typů pod typem Type. Mezi jeho vlastnosti patří výroková extenzionalita a impredikativita.