15-150: Principles of Functional Programming
Lecture 1: Evaluation and Typing, Binding and Scope
Today we outlined the course and its goals and started to
explore the language SML.
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)
(So
far we covered Sections 1 through 4. We started with the material of Section 5 but did not complete it yet. Please refer back to these notes after Thursday's lecture.)