This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: (* pattern matching on lists *) ( let rec length = function > 0  _ :: t > length (t)+1 let rec length l = match l with > 0  _ :: t > length (t)+1 let rec nth lst n = match (lst, n) with (,_) > raise(Failure "bad index")  (h::_,0) > h  (_::t,_) > nth t (n1) (* pattern matching on trees *) ( type 'a tree = Node of 'a * 'a tree * 'a tree  Leaf t let rec depth = function Leaf > 0  Node(_, a, b) > 1+max (depth a) (depth b) let rec contains x = function Leaf > false  Node (y, l, r) > if x=y then true else if x < y then contains x l else contains x r let rec contains x = function Leaf > false  Node (y, l, r) > x=y  (x < y && contains x l)  (x > y && contains x r) (* Familiarity with OCaml List module *) ( (* Higher order functions and currying *) ( let inc x = x+1 l let inc = function x > x+1 l let twice f x = f(f(x)) let twice f = function x > f(f(x)) twice inc 3 t twice (function(x) > x+1) 3 t twice inc t twice twice inc 2 t (twice twice) inc 2 ( twice (twice inc) 2...
View
Full
Document
This note was uploaded on 10/25/2009 for the course PHYS 2214 at Cornell University (Engineering School).
 '07
 GIAMBATTISTA,A

Click to edit the document details