Also note that in F # you usually use an immutable List:
let last (stuff: _ list) = let l = stuff.Length stuff.[l]
But if you use a list, you would use a more efficient algorithm ; F # lists are linked lists:
let rec last = function | hd :: [] -> hd | hd :: tl -> last tl | _ -> failwith "Empty list."
source share