Я написал следующую функцию:
let str2lst str =
let rec f s acc =
match s with
| "" -> acc
| _ -> f (s.Substring 1) (s.[0]::acc)
f str []
Как я могу узнать, превратил ли компилятор F # в цикл? Есть ли способ узнать, не используя Reflector (у меня нет опыта с Reflector и я не знаю С#)?
Edit: Кроме того, возможно ли написать хвостовую рекурсивную функцию без использования внутренней функции или необходимо, чтобы цикл находился в?
Кроме того, существует ли функция в F # std lib для запуска данной функции несколько раз, каждый раз, когда она дает последний выход в качестве входа? Допустим, у меня есть строка, я хочу запустить функцию над строкой, а затем запустить ее снова по результирующей строке и так далее...