Functional Design and Programming Lecture 6: Functions as data
Literature (Pensum) Paulson, chap. 5: Functions as values ( ) Standard combinators List combinators ( ) Other combinators (5.11) Infinite lists ( ) Search strategies and infinite lists ( )
Exercises Paulson, chap. 5:
Overview Functions as values Standard combinators List combinators Other combinators Infinite lists Search strategies and infinite lists
Functions as values Lambda-notation (anonymous functions) Currying and uncurring Functions in data structures Functions as arguments and results
Lambda-notation
Currying and uncurrying
Functions in data structures Example: Mapping keywords to comparison functions (for sorting)
Functions as arguments and results Examples: Lookup function for comparison functions parameterized sort function Summation
Standard combinators List combinators: map, filter takewhile, dropwhile exists, all foldl, foldr Other combinators: compose ( o ) repeat treefold
Infinite lists (sequences) Datatypes for delayed evaluation Elementary sequence processing Elementary applications of sequences: Random numbers Prime numbers Numerical computing
Search strategies Infinite trees Search strategies for infinite trees: depth-first breadth-first depth-first iterative best-first Toy applications: palindromes 8-queens