The following code:
exception NoElements of string
let nth(k, list) =
let rec loop count list =
match list with
| head :: _ when count = k -> head
| _ :: tail when count <> k -> loop (count+1) tail
| [] -> raise (NoElements("No Elements"))
loop 0 list
;;
printfn "%A" (nth(2, [1; 1; 2; 3; 5; 8]))
Produces the following errors when compiling on a mac, but not in Visual Studio 2010:
nth.fs(10,0): error FS0191: syntax error.
nth.fs(4,4): error FS0191: no matching ‘in’ found for this ‘let’.
Make sure you are using the lightweight syntax directive at the top of your code
(This is only necessary for old versions of the compiler; grab a newer version.)