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]] ## Side-effects / mutation ## * [[!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]]