Links to tutorials and other resources on Scheme, OCaml, and Haskell

Other Offsite Reading

Old links

The links below are from the last time we taught the course; we should check them again...

There's lots of links here already to tutorials and encyclopedia entries about many of the notions we'll be dealing with.

Many of these links are to Wikipedia. You can learn a lot from such articles, so long as you remember they may sometimes mislead or make mistakes. However, I hope at this point in your education you'll have learned to be a guarded reader even of authoritative treatises by eminent authors. So you shouldn't need any Wikipedia-specific warnings.

For most readers, many bits of reading we point you to will be hairy in one way or another. It may be aimed at audiences with more programming experience; it may be aimed at audiences with specific logical background you don't yet have; it may be aimed at audiences familiar with technical areas in linguistics you're first encountering. Or perhaps several of these at once. We hope you will already have mastered the skill of leveraged reading: getting what you can out of an article you don't fully understand, so that you can discuss it with the rest of the group and hopefully get to a point where you can read it again and get more out of. (Rinse and repeat.)

Functions

Functional vs imperative programming

General issues about variables and scope in programming languages

Untyped lambda calculus and combinatory logic

Evaluation Order

Confluence, Normalization, Undecidability

Recursion and the Y Combinator

Folds

Types

* Tagged union * Algebraic data type * Recursive data type * Pattern matching * Unit type * Bottom type

Monads

Monads in Category Theory

Side-effects / mutation

Continuations

The Curry-Howard Correspondence

Linear Logic

Other