Lecture 1

Theorem 1: Church-Turing Thesis

“Any algorithm that can be expressed using a turing machine can be expressed in lambda calculus AND any algorithm that can be expressed in lambda calculus can be expressed using a turing machine”

Basically, they’re equivalently powerful but they achieve the same algorithm through different means.

Definitions

  • A programming paradigm is a name given to a set of languages that share a programming style, way of evaluation, and toolset available.

  • A pure function is one whose output relies solely on its inputs. It does not rely on global state or mutate global state (side effects are mutating).

Haskell as a language

Haskell is a lazily evaluated and purely functional programming language.