CS 330 Lecture 31 – Hi, Scheme
Agenda
- Thinking functionally
- recursion over iteration
- chaining vs. sequence
- atoms, lists, and S-expressions
- Polish notation
- car, cdr, cons, cond
- our first functions
- arithmetic expressions
- logical expressions
- factorial
- lambda
- list functions
- length
- contains
- nth-element
- merge
- remove
- map
- filter
TODO
Program This
Choose one or both:
- Write contains, which takes two arguments: a list and an atom. Return true if the list contains the atom.
- Write nth-element, which returns the the nth-element (starting at 0) of the list.
Code
stuff.scm
(define calc-tax (lambda (price) (* 1.055 price))) (calc-tax 3.69) ;; ((lambda (price) (* 1.055 price)) 3.69) (define ! (lambda (n) (cond ((= n 0) 1) (else (* n (! (- n 1))))))) (define merge (lambda (a b) (cond ((null? a) b) ((null? b) a) (...))))