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.