А поскольку это хвостовой контекст, функция является хвостовой рекурсивной. Вот как это делают функциональные программисты: просматривают тело определения на предмет рекурсивных вызовов, а затем проверяют, что каждое из них происходит в хвостовом контексте. Более интуитивное определение хвостового вызова - это когда ничего не делается с результатом вызова, кроме его возврата.


тся ли эта функция хвостовой рекурсивной?

let rec rec_algo1 step J = 
    if step = dSs then J
    else
        let a = Array.init (Array2D.length1 M) (fun i -> minby1J i M J)
        let argmin = a|> Array.minBy snd |> fst
        rec_algo1 (step+1) (argmin::J)

В общем, есть ли способформально Проверь это ?

Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос