无法逐行调试f#递归函数 - VS 2013

时间:2014-06-04 15:39:03

标签: debugging recursion f#

我尝试调试递归函数以确认我的推理,这实际上不是尾递归。 下面是工作代码:

    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。我尝试使用编译器标志,但这似乎无法解决问题。

1 个答案:

答案 0 :(得分:0)

经验并不完美,但这确实有效。将你的断点放在match的行上,事情很好吃。

enter image description here

我知道您已经花时间打开了一个SO问题,并打开了一个Connect错误,但是请你能在Visual F#开源页面上记录这个吗? https://visualfsharp.codeplex.com/WorkItem/Create

这不是递归函数特有的。只是整体而言,围绕设置断点的行为现在在F#中有点时髦。在bug中记录一些具体的例子会很棒。