学习函数式编程,从了解变量开始(Scheme之变量)

本文探讨了函数式编程语言Scheme中变量的理解,强调数据的不变性在多核编程中的优势。Scheme的变量没有类型,使用前必须声明并初始化,赋值表达式(set!)不常见。函数定义通过λ表达式实现,函数应用采用前缀表示法。函数被视为第一阶元素,可以像常量一样使用和传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【本文放入 0.2.3函数编程范式 】2021.3 

2.学习函数式编程,从了解变量开始

Scheme与C系列语言的一个重大差异,在于对变量(variable)的理解和处理。在C系语言中,变量表示一个存储场所,是源代码中保存值的符号化地址。Scheme中,定义变量是为了拥有一个程序中方便使用的名字。该名字与其代表的软件实体形成关联、即形成名值对,称为绑定。

C系语言中变量x可以使用赋值表达式不停地给变量赋值,以至于一些自以为是的教材称“变量是其值可变的量”。C系语言中的名字/标识符,除了可以不停地被赋值的变量,另外的主要用途是命名常量和函数名。而这些命名常量和函数名,正是Scheme中需要定义变量的主要原因。对于绝大多数程序员而言,函数编程范式最表象的特点,就是变量的值尽可能不要变化。

★函数式编程的重要特性:数据的不变性(immutabledata/不可变数据)。

正如Java中不变类的优点一样,函数编程语言中更为基础的不可变数据,使得它在多核时代越来越受到宠爱,因为各个线程之间不需要同步/互斥或加锁,极大方便了并行程序开发。

赋值表达式的副作用在函数式编程语言被格外警惕——不到万不得已不使用赋值表达式。为此,Scheme将赋值表达式设定为远远较等号麻烦得多的书写形式,其一般格式为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值