* doc: add documentation on functors. * fix: make comments green * minor tweaks * doc: add section on Applicatives. * doc: add some more info on the laws from Mario. * doc: add law list and move lazy evaluation up so the chapter ends properly. * doc: Add something on seqLeft and seqRight. * doc: add section on monads. * doc: fix some typos. * doc: switch to LeanInk for chaper on Monads. * doc: remove old files. * doc: fix mdbook test errors. * doc: add part 4: readers * doc: add section on State monads * doc: fix some typos and add some more details. * doc: fix typos and add some CR feedback. * doc: add Except monad section. * doc: add info on monad transformers. * Delete transformers.lean.md * doc: fix some typos. * doc: fix typos and move forward reference to monad lifting. * doc: Update `State` to `StateM` * doc: fix references to State to become StateM. * doc: generalize indexOf implementation. * doc: add chapter on monad laws and move "law" sections to this chapter to avoid redundancy. * doc: add theorem * Delete laws.lean.md * doc: fix some typos. * doc: fix broken link. * doc: fox typos. * fix: language changed from "us" to "you". * doc: fix code review comments. * doc: some word smithing * doc: some word smithing and sample simplification. * doc: add bad_option_map example. * doc: add side note on `return` statement and fix heading level consistency. * Add `withReader` info * doc: change language from us, our, your, we, we'll, we've to "you" * doc: add some forward links. * doc: put spaces around colon in function arguments like "(x : List Nat)" * doc: Add backticks on map Remove commands on multiline structure instance Fix centerdot Add "one of" * doc: Remove info about Functor in other languages. * doc: add info on <$> being left associative remove another forward reference to monad fix typo `operatoions` remove unneccesary parens after <$> * doc: fix Type u -> Type v fix you -> your use `let val? ← IO.getEnv name` in Readers call it "context" rather than "state". * doc: fix withReader docs use 'context' to describe the ReaderM state. remove "trivial" type inference => Lean "abstract classes" => "abstract structures" remove unnecessary parens * doc: fix bug in explanation of `let x ← readerFunc2` Fix explanation of equivalence between `def f (a : Nat) : String` and `def f : Nat → String` * doc: move hasSomeItemGreaterThan to Except.lean Add validateList List.anyM example. fix `def f (a : Nat) : String` language. * doc: fix "What transformation are you referring to" * doc: fix typo. * doc: add missing period. * doc: fix validateList * doc: explain `λ` notation. * doc: reword the map, seq, bind comparison. * doc: fix some more 'reader state' to 'reader context' language * doc: fix wrote statement about return only works in do blocks. * doc: fix typo Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch> * doc: improve language Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch> * doc: fix typo Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch> * Add info on what a do block is doing for you. * doc: define definitionally equal * doc: make `readerFunc3.run env` canonical. * doc: remove unnecessary parens. * doc: fix typos * doc: make List.map a bit more clear in the intro to Functors. * doc: simplify readerFunc3WithReader * doc: switch to svg for diagram so it works better on dark themes. * doc: align nodes in diagram and convert to svg. * doc: simplify playGame using while true. * doc: drop confusing statement about "definitionally equal" * doc: switch to `import Lean.Data.HashMap` * doc: fix typo "operatoins" * doc: update diagram to add more info and polish the intro paragraphs so they better match the actual contents of each chapter. * doc: fix typo * doc: fix typo. Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
93 lines
3.4 KiB
Markdown
93 lines
3.4 KiB
Markdown
# Summary
|
|
|
|
- [What is Lean](./whatIsLean.md)
|
|
- [Tour of Lean](./tour.md)
|
|
- [Setting Up Lean](./quickstart.md)
|
|
- [Extended Setup Notes](./setup.md)
|
|
- [Theorem Proving in Lean](./tpil.md)
|
|
- [Functional Programming in Lean](fplean.md)
|
|
- [Examples](./examples.md)
|
|
- [Palindromes](examples/palindromes.lean.md)
|
|
- [Binary Search Trees](examples/bintree.lean.md)
|
|
- [A Certified Type Checker](examples/tc.lean.md)
|
|
- [The Well-Typed Interpreter](examples/interp.lean.md)
|
|
- [Dependent de Bruijn Indices](examples/deBruijn.lean.md)
|
|
- [Parametric Higher-Order Abstract Syntax](examples/phoas.lean.md)
|
|
|
|
# Language Manual
|
|
<!-- - [Using Lean](./using_lean.md) -->
|
|
<!-- - [Lexical Structure](./lexical_structure.md) -->
|
|
<!-- - [Expressions](./expressions.md) -->
|
|
<!-- - [Declarations](./declarations.md) -->
|
|
- [Organizational features](./organization.md)
|
|
- [Sections](./sections.md)
|
|
- [Namespaces](./namespaces.md)
|
|
- [Implicit Arguments](./implicit.md)
|
|
- [Auto Bound Implicit Arguments](./autobound.md)
|
|
<!-- - [Dependent Types](./deptypes.md) -->
|
|
<!-- - [Simple Type Theory](./simptypes.md) -->
|
|
<!-- - [Types as objects](./typeobjs.md) -->
|
|
<!-- - [Function Abstraction and Evaluation](./funabst.md) -->
|
|
<!-- - [Introducing Definitions](./introdef.md) -->
|
|
<!-- - [What makes dependent type theory dependent?](./dep.md) -->
|
|
<!-- - [Tactics](./tactics.md) -->
|
|
- [Syntax Extensions](./syntax.md)
|
|
- [The `do` Notation](./do.md)
|
|
- [String Interpolation](./stringinterp.md)
|
|
- [User-Defined Notation](./notation.md)
|
|
- [Macro Overview](./macro_overview.md)
|
|
- [Elaborators](./elaborators.md)
|
|
- [Examples](./syntax_examples.md)
|
|
- [Balanced Parentheses](./syntax_example.md)
|
|
- [Arithmetic DSL](./metaprogramming-arith.md)
|
|
- [Declaring New Types](./decltypes.md)
|
|
- [Enumerated Types](./enum.md)
|
|
- [Inductive Types](./inductive.md)
|
|
- [Structures](./struct.md)
|
|
- [Type classes](./typeclass.md)
|
|
- [Unification Hints](./unifhint.md)
|
|
- [Builtin Types](./builtintypes.md)
|
|
- [Natural number](./nat.md)
|
|
- [Integer](./int.md)
|
|
- [Fixed precision unsigned integer](./uint.md)
|
|
- [Float](./float.md)
|
|
- [Array](./array.md)
|
|
- [List](./list.md)
|
|
- [Character](./char.md)
|
|
- [String](./string.md)
|
|
- [Option](./option.md)
|
|
- [Thunk](./thunk.md)
|
|
- [Task and Thread](./task.md)
|
|
- [Functions](./functions.md)
|
|
- [Monads](./monads/intro.md)
|
|
- [Functor](./monads/functors.lean.md)
|
|
- [Applicative](./monads/applicatives.lean.md)
|
|
- [Monad](./monads/monads.lean.md)
|
|
- [Reader](./monads/readers.lean.md)
|
|
- [State](./monads/states.lean.md)
|
|
- [Except](./monads/except.lean.md)
|
|
- [Transformers](./monads/transformers.lean.md)
|
|
- [Laws](./monads/laws.lean.md)
|
|
|
|
# Other
|
|
|
|
- [Frequently Asked Questions](./faq.md)
|
|
- [Significant Changes from Lean 3](./lean3changes.md)
|
|
- [Syntax Highlighting Lean in LaTeX](./syntax_highlight_in_latex.md)
|
|
- [User Widgets](examples/widgets.lean.md)
|
|
|
|
# Development
|
|
|
|
- [Development Guide](./dev/index.md)
|
|
- [Building Lean](./make/index.md)
|
|
- [Ubuntu Setup](./make/ubuntu.md)
|
|
- [macOS Setup](./make/osx-10.9.md)
|
|
- [Windows MSYS2 Setup](./make/msys2.md)
|
|
- [Windows with WSL](./make/wsl.md)
|
|
- [Nix Setup (*Experimental*)](./make/nix.md)
|
|
- [Bootstrapping](./dev/bootstrap.md)
|
|
- [Testing](./dev/testing.md)
|
|
- [Debugging](./dev/debugging.md)
|
|
- [Commit Convention](./dev/commit_convention.md)
|
|
- [Building This Manual](./dev/mdbook.md)
|
|
- [Foreign Function Interface](./dev/ffi.md)
|