Используется сопоставление по образцу с последующим рекурсивным вызовом. Ключевое слово let задаёт новое определение - в данном случае функцию fac. rec - обозначает, что определение будет рекурсивным. Сопоставление по образцу определяется ключевым словом match.
let rec fac n = match n with | 0 -> 1 | _ -> n * fac(n - 1)