Navigate to list of lectures
Programming Paradigms
Functional Programming in Scheme

Referential Transparency, Stack Overflow
R5RS: Binding Constructs (let, let*, letrec)
Function objects
Foldoc: first class
Foldoc: lambda calculus
R5RS: Procedure calls
Beta Reduction - calling a function
Foldoc: function
R5RS: Definitions
R5RS: Strings
R5RS: Vectors
Future exercise about binary search in vectors
R5RS: Booleans
R5RS: Characters
R5RS: Symbols
R5RS: Equivalence predicates
Associative arrays - OOP (in Danish)
R5RS: Pairs and Lists
R5RS: Quasiquotation
R5RS: List and pair functions in Scheme
Foldoc: list
Foldoc: cons
Foldoc: strong typing
Foldoc: weak typing
Foldoc: static typing
Foldoc: dynamic typing
Typing - Wikipedia
Foldoc: type
R5RS: The Scheme Language Report
R6RS: The Scheme Language Report
R7RS (Small) The Scheme Language Report home page
Foldoc: Scheme
Foldoc: Lisp
Foldoc: prefix notation
Foldoc: curried function
The string-merge function
Foldoc: filter
Foldoc: map
The syntax of function definition
Richard Gabrial: The why of Y
Wikipedia: Tail call
R5RS: Proper tail recursion
R5RS: Proper tail recursion
Foldoc: iteration
Foldoc: recursion
Foldoc: recursion
The functions on this slide are inspirred from Ganz, Friedman and Wand: Trampoline Style.
Wikipedia: Tail calls - through trampolining
An earlier version of list-length that use call-with-current-continuation
Recursion versus iteration
An continuation passing style version of list-length - without use of call-with-current-continuation
Same example with call-with-current-continuation
Common Lisp the Language, 2nd Edition.
Dynamic Non-local exists (Common Lisp)
Core Scheme
Example from 'Lambda the Ultimate' by Steele and Sussman
Kurt Nørmark, Simulation of Object-oriented Concepts and Mechanisms in Scheme
Foldoc: closure
SICP: Streams
R5RS: delay
R5RS: force
Foldoc: lazy evaluation
Foldoc: church-rosser
Foldoc: normal form
Foldoc: eta conversion
Foldoc: beta conversion
Foldoc: alpha conversion
Our earlier discussion of referential transparency
Equality in Scheme