我尝试调试递归函数以确认我的推理,这实际上不是尾递归。 下面是工作代码:
let CountList list =
let rec TailCountList list acc =
match list with
| [] -> acc
| h::t -> TailCountList t acc + 1
TailCountList list 0
printfn "%d" <| CountList [1;2;3;4;5;6]
我可以将断点放在函数中,但是在调试期间,整个函数都是高位的,我无法逐行执行。我正在使用VS 2013 Pro。我尝试使用编译器标志,但这似乎无法解决问题。
答案 0 :(得分:0)
经验并不完美,但这确实有效。将你的断点放在match
的行上,事情很好吃。
我知道您已经花时间打开了一个SO问题,并打开了一个Connect错误,但是请你能在Visual F#开源页面上记录这个吗? https://visualfsharp.codeplex.com/WorkItem/Create
这不是递归函数特有的。只是整体而言,围绕设置断点的行为现在在F#中有点时髦。在bug中记录一些具体的例子会很棒。