F#2:FSI环境

众所周知,我是C#的人。 因此,如果我只是想尝试一些东西,通常我只是打开LINQPad并在那里尝试一些东西。 如果事情正在发展,并且我需要对实验进行更多控制,我将放弃LINQPad并将ConsoleApplication应用程序部署在Visual Studio中。 这两种方法都可以正常工作,但是如果存在某种环境,您甚至可以在Visual Studio本身内尝试某些操作而无需创建新项目,那将是很好的。

幸运的是,F#中有一个。

有一个非常出色的工具,称为F#交互式窗口(FSI),您可以使用Visual Studio(我正在使用VS 2012)找到它,例如:

图片

打开F#交互式窗口后,应该会看到类似以下内容的内容:

图片

现在,这看起来似乎并不那么夸张,但是此窗口使您可以轻松地执行许多操作。 如果您愿意,它可以用于快速原型制作和测试。

这样,您可以看到提示>正在等待您的输入。 让我们介绍一下吗?

提供输入


您需要在F#交互式窗口中进行的所有输入操作都是以两个分号“ ;;”结尾。

正确输入的一些有效示例如下。

声明一个将采用值并将其平方的函数(注意,我们未指定类型x):

let squarer x = x * x;; 

现在,我们声明一个变量,该变量将包含对squarer函数的调用的返回值。 这很容易做到,如下所示:

 let squared = squarer 10;; 

数据显示


如果我们要查看数据,我们也可以用类似的方式评估事物。 因此,假设我们刚刚输入了上面的值,我们将得到以下内容:

  1. 平方函数
  2. 函数返回的整数类型

因此,要评估其中之一,例如“平方”,我们可以在FSI输入行中简单输入以下内容:

 squared;; 

当我们在FSI中运行此行时,发生的是该值显示在FSI窗口中,如下所示:

 val it : int = 100 

您可以看到该值实际上是100,这是先前调用FSI窗口中创建的squarer函数的结果。

结束前的另一件事很酷


在完成本文之前,我只想提一下,如果您想快速尝试一些操作,还可以将FSI窗口与F#脚本文件一起使用。

假设我有一个F#(FSX)脚本文件,其中包含以下代码:

 open System let squareRootMe x = System.Math.Sqrt(x) 

我想在FSI中尝试此操作,我只需选择代码的行/部分,然后在FSI窗口中选择其执行即可。

图片

现在,它在FSI窗口的范围内。 这意味着我可以使用如下所示的功能:

 > let x = squareRootMe 144.0;; val x : float = 12.0 

Source: https://habr.com/ru/post/zh-CN470033/


All Articles