Как новичок в F #, я пытаюсь реализовать простую функцию, которая принимает индекс и список в качестве параметров, а затем возвращает значение списка данного индекса.
let rec getElementAtIndex (index : int) (list : 'a list) =
match index, list with
| _ ,[] -> failwith "index is greater than number of elements in list.."
| _, _ when index < 0 -> failwith "index is less than 0."
| 0, (first::_) -> first
| _, (_::rest') -> getElementAtIndex (index - 1) rest'
Мое решение работает нормально, но когда я даю параметр индекса больше размера списка и когда я даю пустой список в качестве параметра, в обеих ситуациях происходит одно и то же условие, равное
| _ ,[] -> failwith "index is greater than number of elements in list."
Как мне избежать этого и проверить, если список пуст и данный индекс больше размера списка отдельно, без использования методов библиотеки .net?
Любая помощь будет оценена