Якщо у вас є рекурсивна функція, яка спирається на яку-небудь іншу функцію, що є кращим способом реалізації цього?
1) поза рекурсивної функції
let doSomething n = ...
let rec doSomethingElse x =
match x with
| yourDone -> ...
| yourNotDone -> doSomethingElse (doSomething x)
2) всередині рекурсивної функції
let rec doSomethingElse x =
let doSomething n = ...
match x with
| yourDone -> ...
| yourNotDone -> doSomethingElse (doSomething x)
3) інкапсулювати як всередині третьої функції
let doSomethingElse x =
let doSomething n = ...
let innerDoSomethingElse =
match x with
| yourDone -> ...
| yourNotDone -> innerDoSomethingElse (doSomething x)
4) щось ще краще?