从 C++ 走向 rust(八):走进函数式编程——匿名函数

本文探讨了Rust语言在函数式编程特性上的表现,对比了与Haskell的相似之处。通过匿名函数、函数作为一等公民、函数作为参数的示例,展示了Rust在过程式编程与函数式编程之间的融合。同时,提到了与C语言函数指针的比较,指出尽管Rust具备一些函数式编程的特点,但与Haskell的纯函数式编程仍有本质区别。

虽然 rust 与 haskell 相比,并不是真正的函数式编程,但不得不说,还真的有点 haskell 的意思。我们看一个匿名函数:

1. 一个简单的匿名函数

fn main() {
   
   
    let inc = |x| x + 1;
    println!("{}", inc(1))
} 

运行一下,结果显示 2,很好吧?

2. 函数是一等公民?

haskell 有一个令人印象很深的特点,就是函数和“变量”没有区别。例如,我们可以定义 inc 函数如下:

inc x = x + 1

够简单吧?

在 haskell 中定义一个恒等于 1 的函数 one,这个函数不需要输入参数 x:

one = 1

我靠,这个与我们熟知的变量没区别吧?因为函数名称和参数之间没有小括号分隔,所以在 haskell 这样“纯正的”函数式编程语言中,函数和变量没区别。用 c 语言模拟一下的话,是这个样子:

int one() {
   
   
	
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许野平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值