f#异常在循环中无序引发

f#异常在循环中无序引发,f#,F#,在以下情况下,在函数启动之前显示异常是否有原因 let listCharacters (text:string) = let stripv3 = text.Split([|' '|], System.StringSplitOptions.RemoveEmptyEntries) |> System.String.Concat for i in 0..2..stripv3.Length do let char = stripv3.Char

在以下情况下,在函数启动之前显示异常是否有原因

let listCharacters (text:string) =
    let stripv3 =  text.Split([|' '|], System.StringSplitOptions.RemoveEmptyEntries) |> System.String.Concat      

    for i in 0..2..stripv3.Length do
            let char = stripv3.Chars(i)
            if char <> ' ' then
                printfn "%c" char  

listCharacters "honey badger is a badass"

有趣的是,如果我添加一个
try..with
with中的任何操作都是按顺序发生的,那么有什么想法可以解释为什么会这样吗?

要总结上面的注释,这个问题是针对IDE的,而不是针对语言的

在本例中,该问题仅在Visual Studio F#交互式视图中出现


当完全执行或通过Visual Studio FSI.exe运行时,异常是最后一个要输出的项。

要总结上面的注释,问题特定于IDE,而不是语言

在本例中,该问题仅在Visual Studio F#交互式视图中出现


完全执行或通过Visual Studio FSI.exe运行时,异常是最后一个要输出的项。

输出在哪里?VS2013/F#3.1中代码片段的FSI输出在我看来完全正常,即VS2015中字符行.FSI后出现异常,诚然,我才刚刚开始研究f#,所以我很确定我的期望值已经超出了范围,但我想了解为什么异常不是输出的最后一行。在VS2015 Enterprise中尝试了它-输出仍然如预期的那样(FSI版本14.0.23020.0)。像@GeneBelitski一样,我既不能在Visual Studio Professional 2015中重现这种行为,也不能从命令行在FSI中重现这种行为。如果您已经解决了问题,如果您可以将您的解决方案记录为答案,则可以帮助其他人。输出在哪里?VS2013/F#3.1中代码片段的FSI输出在我看来完全正常,即VS2015中字符行.FSI后出现异常,诚然,我才刚刚开始研究f#,所以我很确定我的期望值已经超出了范围,但我想了解为什么异常不是输出的最后一行。在VS2015 Enterprise中尝试了它-输出仍然如预期的那样(FSI版本14.0.23020.0)。像@GeneBelitski一样,我可以从命令行在Visual Studio Professional 2015或FSI中重现这种行为。如果您已经解决了问题,如果您可以将您的解决方案记录下来作为答案,它可以帮助其他人。
System.IndexOutOfRangeException: Index was outside the bounds of the array.
h
n
y
a
g
r
s
b
d
s