我写了以下函数:
let str2lst str =
let rec f s acc =
match s with
| "" -> acc
| _ -> f (s.Substring 1) (s.[0]::acc)
f str []
我怎么知道 F# 编译器是否把它变成了循环?有没有办法在不使用 Reflector 的情况下找出答案(我没有使用 Reflector 的经验,也不懂 C#)?
编辑:另外,是否可以在不使用内部函数的情况下编写尾递归函数,或者循环是否必须驻留在其中?
此外,F# std lib 中是否有一个函数可以多次运行给定函数,每次都将最后一个输出作为输入?假设我有一个字符串,我想在字符串上运行一个函数,然后在结果字符串上再次运行它,依此类推......