15-150: Principles of Functional Programming
Lecture 1: Evaluation and Typing, Binding and Scope
Today we outlined the course and its goals, including referential
transparency, extensional equivalence, and parallelism. We started to
explore the language SML by looking at its types.
Key Concepts
- Computation is Functional
- Programming as an Explanatory Process
- Types, Values, and Expressions
- Typing and Evaluation rules
- Integers, Reals, Booleans, Products
- Parallelism, Work, and Span
- Referential Transparency and Extensional Equivalence
- Declaration
- Binding
- Scope (by the scope of a binding we mean the part of
the code where that binding is visible/accessible)
- Environment
- Definition of a total function
(We are reusing notes from a previous session of the course authored by Professor Erdmann. So far, we have only discussed pages 1 through 5. Please refer back to these notes after Thursday's lectures.)