Many off 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. ## General issues about variables and binding in programming languages ## [[!wikipedia Variable (programming)]] [[!wikipedia Variable shadowing]] [[!wikipedia Scope (programming)]] [[!wikipedia Free variables and bound variables]] [[!wikipedia Name binding]] [[!wikipedia Name resolution]] [[!wikipedia Parameter (computer science)]] ## Functions as values, etc ## [[!wikipedia Higher-order function]] [[!wikipedia First-class function]] [[!wikipedia Closure (computer science)]] [[!wikipedia Currying]] [[!wikipedia Recursion (computer science)]] ## Functional vs imperative programming ## [[!wikipedia Declarative programming]] [[!wikipedia Functional programming]] [[!wikipedia Purely functional]] [[!wikipedia Referential transparency (computer science)]] [[!wikipedia Imperative programming]] ## Scheme and OCaml ## [[!wikipedia Scheme (programming language)]] [[!wikipedia Objective Caml]] ## Untyped lambda calculus and combinatory logic ## [[!wikipedia Lambda calculus]] [[!wikipedia Haskell Curry]] [[!wikipedia Moses Schönfinkel]] [[!wikipedia Alonzo Church]] [[!wikipedia Combinatory logic]] [[!wikipedia B,C,K,W system]] [[!wikipedia SKI combinatory calculus]] [[!wikipedia Church-Rosser theorem]] [[!wikipedia Normalization property]] [[!wikipedia Turing completeness]] [[!wikipedia Church encoding]] [[!wikipedia Y combinator]] [[!wikipedia Curry-Howard isomorphism]] [[!wikipedia Evaluation strategy]] [[!wikipedia Eager evaluation]] [[!wikipedia Lazy evaluation]] [[!wikipedia Strict programming language]] ## Types ## [[!wikipedia Tagged union]] [[!wikipedia Algebraic data type]] [[!wikipedia Pattern matching]] [[!wikipedia Unit type]] [[!wikipedia Bottom type]] [[!wikipedia Typed lambda calculus]] [[!wikipedia Simply typed lambda calculus]] [[!wikipedia Type polymorphism]] [[!wikipedia System F]] [[!wikipedia Side effect (computer science)]] [[!wikipedia Reference (computer science)]] [[!wikipedia Pointer (computing)]] ## Continuations ## [[!wikipedia Continuation]] [[!wikipedia Continuation-passing style]] [[!wikipedia Call-with-current-continuation]] [[!wikipedia Delimited continuation]] ## Monads ## [[!wikipedia Monad (functional programming)]] ## Linear Logic ## [[!wikipedia Linear logic]]