tôi đã viết chức năng follwing:Làm thế nào để tôi biết nếu một chức năng là đệ quy đuôi trong F #
let str2lst str =
let rec f s acc =
match s with
| "" -> acc
| _ -> f (s.Substring 1) (s.[0]::acc)
f str []
Làm thế nào tôi có thể biết nếu F # biên dịch biến nó thành một vòng lặp? Có cách nào để tìm ra mà không sử dụng Reflector (Tôi không có kinh nghiệm với Reflector và tôi không biết C#)?
Chỉnh sửa: Ngoài ra, có thể viết hàm đệ quy đuôi mà không cần sử dụng hàm bên trong hay là cần thiết cho vòng lặp cư trú?
Ngoài ra, có chức năng trong F # std lib để chạy một hàm đã cho một số lần, mỗi lần cho nó đầu ra cuối cùng làm đầu vào? Cho phép nói rằng tôi có một chuỗi, tôi muốn chạy một chức năng trên chuỗi sau đó chạy nó một lần nữa trên chuỗi kết quả và như vậy ...
Xem thêm http://stackoverflow.com/questions/5809683/is-my-rec-function-tail-recursive – Brian