CS152
Chris Pollett
Apr. 22, 2009
As we talk about the above we'll continue to introduce ML.
type int_fun = int -> int;
val f:int_fun = fn x => 2*x;
[1, 2, 3]; (* same as 1::2::3::nil *) nil; (* empty list *) [1,2]@[3,4]; (*concatenates to make [1,2,3,4] *) hd([1,2,3]); (* returns head of list. I.e., 1 *) tl([1,2,3]); (*returns tail of list. I.e., [2,3] *)
type int_list_type = int list;
fun reverse(nil) = nil | reverse(x::xs) = reverse(xs)@[x];
fun reverse(L) = if L = nil then nil else reverse(tl(L)) @[hd(L)];
datatype ref_int = ref of int;
datatype 'label btree = Empty | Node of 'label * 'label btree * 'label btree;