en:fp [2012 Formosan Summer School on Logic, Language, and Computation (FLOLAC '12)]

Functional Programming

Course Materials

  • 作業請寄給助教 jaiyalas(at)iis.sinica.edu.tw ,或是當面交給助教。

Outline

Part 1. Functions, Values, and Evaluation

  • Values and Evaluation
    • Talking to the Interpreter
    • Evaluation and Termination
  • Functions
    • Currying
    • Sectioning
    • Definitions
  • Types – A Brief Start

Part 2. Induction on Datatypes

  • User Defined Types
  • Induction on Natural Numbers
    • Datatypes, Functions, and Proofs
    • What is a Proof, Anyway?
  • Induction on Lists
    • Append, and Some of Its Properties
    • More Inductively Defined Functions
    • Other Patterns of Induction

Part 3. Simple Functional Data Structures

  • On Efficiency of Operations on Lists
  • Batched Queue
  • Binary Search Tree

Part 4. Program Calculation

  • The Unfold/Fold Transformation
    • Example: Sum of Squares
  • Accumulating Parameters
    • Fast List Reversal
    • Tail Recursion and Loops
    • Being Quicker by Doing More!
    • Proof by Strengthening
  • Tupling