8、F 编程:从函数式到命令式的全面探索

F# 编程:从函数式到命令式的全面探索

1. 函数式编程中的累加器

在函数式编程里,累加器有着重要的地位。形式为 type1 -> type2 -> type2 的类型常常用于模拟访问者累加函数。这类函数会遍历集合(类型为 type1 )中的每个元素,并将结果累加(类型为 type2 )。例如,一个将整数累加到整数集合中的访问者函数,其类型为 int -> Set<int> -> Set<int>

函数类型能够对众多不同概念进行建模,这正是函数式编程经久不衰的魅力所在。这也是 F# 为面向对象编程带来的令人耳目一新的特性之一:许多简单的抽象可以用非常简单的方式进行建模,并且通常可以通过正交、统一的构造(如匿名函数值和函数组合)来实现简单的实现。

2. 函数式编程与命令式编程概述

函数式编程范式的核心是“无副作用编程”,也就是纯函数式编程。在这种范式中,程序计算数学表达式的结果,不会产生任何副作用,只是简单地返回计算结果。像电子表格中使用的公式通常就是纯的,函数式编程语言(如 Haskell)的核心也是如此。

然而,F# 并非纯函数式语言,函数和表达式可以有副作用。在 F# 中编写纯函数和表达式是很常见的,但你也可以编写会修改数据、执行输入/输出、进行网络通信、启动新的并行线程以及抛出异常的函数和表达式。这些副作用统称为命令式编程。F# 类型系统并不严格区分执行这些操作的表达式和不执行这些操作的表达式。

如果你主要的编程经验来自于命令式语言(如 C、

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值