Lecture overview -- Keyboard shortcut: 'u'  Source programs in previous lecture -- Keyboard shortcut: 'p'  Source programs in next lecture -- Keyboard shortcut: 'n'  Course home

Source Programs
Recursion and Higher-order Functions

The Note Context in the rightmost column is only shown in case an annotated program exists. - You can navigate to the annotated program via the annotated slide view (= 'the note context').

The forms discussed.fu-intr-2.scmSlide context--
Tail call.tail-call-setupSlide context--
Example of tail calls and non tail calls.tail-call-examples.scmSlide context--
The function number-interval from the general LAML library.number-interval.scmSlide context--
A sample dialogue with the number interval functions.number-interval-dialogueSlide context--
The recursive function string-merge.general.scmSlide context--
A tail recursive version of string-merge.string-merge-iter.scmSlide context--
Applications of string-of-char-list?.white-space-char-listSlide context--
A naive attempt to define a recursive function.fac-problems-1.scmSlide context--
Equivalent to the program above.fac-problems-2.scmSlide context--
A definition of fac with letrec.fac-ok-1.scmSlide context--
Equivalent to the program above - notice the use of assignment.fac-ok-2.scmSlide context--
Passing fac to itself - the key to a solution.fac-key-1.scmSlide context--
Wishful thinking - the goal of our work: Generating a recursive factorial function from an almost recursive factorial function.y-1.scmSlide context--
The starting point - again.y-2.scmSlide context--
After simple currying.y-3.scmSlide context--
Abstracting (f f) out of if.y-4.scmSlide context--
After a simple renaming of fac to i.y-5.scmSlide context--
Introducing n as parameter to (lambda (h) ...).y-6.scmSlide context--
After currying.y-7.scmSlide context--
The lambda expression bound to g has been moved out.y-8.scmSlide context--
Empty let removed.y-9.scmSlide context--
Introduce function for (let ((i ..)) ...).y-10.scmSlide context--
A small but irritating detail.y-11.scmSlide context--
Factoring self application stuff out.y-12.scmSlide context--
The end result.y-13.scmSlide context--
The function flip changes the order of it's parameters.flip.scmSlide context--
An alternative formulation of flip without use of the sugared define syntax.flip-alternative.scmSlide context--
The function compose composes two functions which both are assumed to take a single argument.compose.scmSlide context--
A linear list search function.find-in-list.scmSlide context--
A simple version of the make-selector-function function.make-selector-function.scmSlide context--
Example usages of the function make-selector-function.make-selector-function-sessionSlide context--
Sample usage of apply.apply-ex.scmSlide context--
The forms discussed.higher-order-fu-fall-15.scmSlide context--
An implementation of map.mymap.scmSlide context--
An implementation of filter which is memory efficient.filter.scmSlide context--
The function reduce-right.reduction.scmSlide context--
The function zip.zipping.scmSlide context--
Generation of curried and uncurried functions in Scheme.currying.scmSlide context--

Generated: Tuesday September 19, 2017, 11:35:04