Functional programming
Computer Science 61A, lecture 1 Lecturer's course notes
STk
- implementation of the Scheme programming language
(+ 6 8)Expressions are operators followed by operand
'helloSingle quote followed by a word returns that word as a value
(+ (* 2 2) (* 5 5))Expressions are evaluated from within. This evaluates to (+ 4 25), then to 29.
first 'hello
last 'hello
butfirst 'hello
butlast 'helloThese evaluate to h, o, e, l, respectively. bf is an alias for butfirst, bl is an alias for butlast.
(item 4 'computer)This evaluates to p
(member? s '(a e i o u))This evaluates to p
(word 'no 'where)This evaluates to nowhere
(sentence 'now 'here)This evaluates to (now here)
(first (first (bf `(she loves you))))This evaluates to l
(define pi 3.1415)This defines pi as an expression with the value of 3.1415.
(define (square x)
(* x x))This defines square as a procedure. It can be called: (square (+ 2 5)) to get 25. A definition like this is a special form, define is a keyword.
Vocabulary
(define (square x)
(* x x))Function definition
where x in square x is the formal parameter
(define (plural wd)
(if (equal? (last wd) 'y)
(word (bl wd) 'ies)
(word wd 's)))Predicate functions return true or false, by convention their names end in a ?.