Вам нужно сделать отступ в строке match
.
Обратите внимание, что элементы списка должны быть разделены точками с запятой; у вас есть одноэлементный список, содержащий шесть кортежей.
Вот рабочая версия:
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]))
Возможно ли, что ваш Mac имеет более старую версию F #? Какую версию сообщает fsc.exe? (Если он очень старый, попробуйте добавить «#light» в качестве первой строки.)