December 2021
Beginner
840 pages
47h 29m
English
Thus far in this course of study of programming languages, we have explored:
(Chapter 2) Language definition methods (i.e., grammars). We have also used these methods as a model to define data structures and implement functions that access them.
(Chapter 5) Recursive, functional programming in λ-calculus and Scheme (and ML and Haskell in online Appendices B and C, respectively).
(Chapter 6) Binding (as a general programming language concept) and (static and dynamic) scoping.
(Chapter 8) Partial function application, currying, and higher-order functions as a way to create powerful and reusable programming abstractions.
(Chapter 9) Data types and type systems:
definition (with class in Python; with define-datatype in Racket Scheme; ...