C++ 表情包趣味教程 👉 《C++要笑着学》

💭 写在前面:为了方便下面继续展开 PL 的学习,我们不得不介绍一下 F# 语言。这是微软搞得一个函数式编程语言,读 F sharp 就行,是不是很想 C#?建议再出一个 K#,这样的话就可以集齐 KFC 编程全家桶了,对了今天是疯狂星期四,可不可以 v 我 50 我要吃 KFC?


Ⅰ. 简单了解下 F#

0x00 为什么学 F#?

F# 是由微软和 Visual Studio 开发的,Visual Studio 是 F# 程序员的优秀集成开发环境。

F# 具有许多有用的功能来处理编程语言,适用于编写处理程序的程序。例如:解释器、编译器、程序分析器等。F# 为您提供了一种全新的编程视角,与 C/C++ 或 Python 不同的编程范式。

当然,F# 不是一种完美的语言,在工业界使用速度慢且不受欢迎。不过,学习 F# 的体验还是不错的。

0x01 关于 F# 环境

首先,您需要安装 .NET Core SDK,因为 F# 是在 .NET 平台上运行的一种语言。您可以在 Microsoft 的官方网站上找到 .NET Core SDK 的安装程序。

🔗 链接:Install .NET on Windows, Linux, and macOS | Microsoft Learn

安装完成后,打开命令行界面(如命令提示符或终端窗口)。

输入以下命令来验证安装是否成功:

dotnet --version

如果安装成功,将会显示安装的 .NET Core SDK 的版本号。

当然我们也可以在宇宙第一编辑器 VS 上安装,因为 F# 就是由微软做的,属于是亲儿子。

0x02 F# 属于函数式编程语言

比如 C, C++, Python 这样的语言,编程就 "=" 要求计算机做什么。

例如:分配和释放内存,将特定值存储在内存空间中,操作分配在内存中的变量或对象。

int x = 10;
int y = x + 1;

Set *s = new Set(); // 存储整型的对象
s->add(y);

delete s;

而 F# 属于 函数式编程语言 (Functional programming language),像 OCaml, Scala, Haskell 这类的语言。编程 "=" 编写表达式来计算,这类似于数学描述。

专注于高层逻辑,而不关心 low-level 内部细节,比如如何使用内存来计算这些表达式

let x = 10
let y = x + 1
let s = Set.add y Set.empty (* s表示集合 { 11 } *)

Ⅱ. 直接上手试试

0x00 创建 F# 项目

项目是 F# 程序的最小单位,在大多数情况下,项目提供的项目骨架代码

你可以使用 dotnet new 命令创建项目

  • *.fsproj包含整个项目信息的文件
  • *.fs:F# 源代码文件(您需要关注的唯一文件)
  • obj/:包含各种构建文件的目录

命令如下,下面就是创建一个叫 HelloFSharp 的 F# 程序:

dotnet new console -lang "F#" -o HelloFSharp

输入完毕后稍等,工程就很好地创建出来了:

0x01 第一个 F# 程序

让我们在 Program.fs 中编写一些 F# 代码,在 F# 中,程序是一系列定义的序列 。

每一个定义都会依次计算,从顶部开始,整数值命名为 i,字符串值命名为 s...

有时,计算的值本身并不重要,我们使用 printfn 进行打印。

该函数仅返回一个 unit (类似于 C 中的 void ) ,我们不关心其返回值,所以就不给它命名了:

使用一个下划线即可,_ 表示我们不给该值任何名称。

let i = 1
let s = "F#"
let _ = printfn "%d %s" i s   // Newline is appended
(* _ 表示我们不给该变量取名,匿名变量 *)

对了,注释用 // 或 (* *) 表示,这非常的 cool!具体操作如下:

① 假设你是用的 Linux 环境,那就vim 进去写一下,先 :ggdg 清空一下:

② 然后我们把相应的代码写一下:

③ 好了之后我们 :wq 退出。

0x02 编译 F# 程序

输入 dotnet build -o out 来构建项目,并将输出存储在 out/ 目录下。

$ dotnet build -o out

最终的编译输出将与项目名称相同(例如 HelloFSharp.fsproj)。

输入 ./out/HelloFSharp 来运行编译后的程序:

$ ./out/HelloFSharp

这就算编译好了,花了 3.82 秒,然后下面我们来运行一下看看:

没问题。


📌 [ 笔者 ]   王亦优
📃 [ 更新 ]   2024.3.26
❌ [ 勘误 ]   /* 暂无 */
📜 [ 声明 ]   由于作者水平有限,本文有错误和不准确之处在所难免,
              本人也很想知道这些错误,恳望读者批评指正!

📜 参考资料 

C++reference[EB/OL]. []. http://www.cplusplus.com/reference/.

Microsoft. MSDN(Microsoft Developer Network)[EB/OL]. []. .

百度百科[EB/OL]. []. https://baike.baidu.com/.

比特科技. C++[EB/OL]. 2021[2021.8.31]. 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐