什么是F#互动窗口适合?

时间:2014-03-19 05:16:13

标签: visual-studio f#

我能在这里编写脚本吗?也许处理一些文字?如果此窗口提供了处理当前文档等的能力,我可能有兴趣学习F#。

我用google搜索并找到了有关学习F#的教程,用F#编写程序,但没有关于F#交互式窗口在VS中的用途。

编辑: 听起来像是咆哮。是吗?不,我喜欢编写脚本。我刚刚编写了一个ruby脚本来在一堆现有的POCO上实现一个接口,我无法轻易弄清楚如何使用ReSharper。我在想如果有一个可以与当前文档一起使用的交互式ruby控制台,那么它将使这项任务变得更加容易。然后我开始想,也许F#控制台就是我想要的,而且它会学习F#。

2 个答案:

答案 0 :(得分:12)

F#Interactive是Read-Eval-Print-Loop(REPL),这是一个ad-hoc环境,可让您体验F#代码。许多函数式编程语言都带有REPL。

您可以在普通编辑器中突出显示一段F#代码,并使用 Alt + Enter 将其发送到F#Interactive。您也可以直接在F#Interactive中编写代码。要在窗口中聚焦,可以使用 Ctrl + Alt + F

F#Interactive也可以作为command-line program fsi.exe使用,独立于Visual Studio。这使得无法访问Visual Studio的人可以访问F#。

还有其他各种方法可以试验代码和API。我个人的偏好是使用测试驱动开发(TDD),这是使用REPL的一种替代方法。使用TDD,我留下了一套测试,这通常是有益的。但是,单元测试有点“重”。进程,因为我必须引入一个单元测试框架,并编写断言。有时,我只需要尝试各种语法替代方法或模型概念的方法,而REPL提供了更轻量级的替代方案。但是,当我使用F#Interactive时,不会留下任何测试文物。

答案 1 :(得分:2)

正如其他人所指出的,F#Interactive窗口的主要目的是作为F#开发的REPL。我发现它对其他任务也很有用 - 你可以将它用作复杂的计算器,你可以打开文件和处理文本,并做许多你可能在unix上使用bash窗口的东西。

我已经尝试过使用F#Interactive访问Visual Studio Automation API,如this blog post中所述。这显然不是FSI最初的目的,但它确实使你似乎感兴趣的一些东西成为可能。我认为如果在FSI中直接支持它会很有用,但是因为我发现到目前为止真的有用它有点笨拙。