(BQ) Part 1 book "Programming languages and techniques" has contents: Overview and program design, introductory ocaml, tuples and nested patterns, binary trees, binary search trees, generic functions and datatypes,. and other contents. | Programming Languages and Techniques Lecture Notes for CIS 120 Steve Zdancewic Stephanie Weirich University of Pennsylvania November 10, 2017 2 CIS 120 Lecture Notes Draft of November 10, 2017 Contents 1 2 Overview and Program Design Introduction and Prerequisites . . . . . . . . . Course Philosophy . . . . . . . . . . . . . . . . How the different parts of CIS 120 fit together Course History . . . . . . . . . . . . . . . . . . Program Design . . . . . . . . . . . . . . . . . . Introductory OCaml OCaml in CIS 120 . . . . . . . . . Primitive Types and Expressions Value-oriented programming . . let declarations . . . . . . . . . . Local let declarations . . . . . . Function Declarations . . . . . . Types . . . . . . . . . . . . . . . . Failwith . . . . . . . . . . . . . . . Commands . . . . . . . . . . . . . A complete example . . . . . . . Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 9 13 15 15 . . . . . . . . . . . 23 23 23 25 28 31 34 36 38 39 42 43 3 Lists and Recursion 45 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4 Tuples and Nested Patterns Tuples . . . . . . . . . . . . . . . Nested patterns . . . . . . . . . Exhaustiveness . . . . . . . . . .