代码之家  ›  专栏  ›  技术社区  ›  sheamus

F#交互式窗口有什么好处?

  •  2
  • sheamus  · 技术社区  · 12 年前

    我可以在这里编写宏脚本吗?也许处理一些文本?如果这个窗口能够处理当前文档等,我可能会对学习F#感兴趣。

    我在谷歌上搜索并找到了学习F#、用F#编写程序的教程,但没有关于F#交互窗口在VS中有什么好处的内容。

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

    2 回复  |  直到 12 年前
        1
  •  13
  •   Mark Seemann    12 年前

    F#Interactive是一个 Read-Eval-Print-Loop (REPL),这是一个特殊的环境,使您能够尝试F#代码。许多函数式编程语言都带有REPL。

    您可以在普通编辑器中突出显示一段F#代码,并使用 中高音 + 进来 。您也可以直接在F#Interactive中编写代码。为了在窗口中聚焦,可以使用 Ctrl键 + 中高音 + F .

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

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

        2
  •  2
  •   mattnewport    12 年前

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

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