【学渣笔记】scala动手实战之函数式编程特点与价值

函数式编程的五个鲜明特点:
    1.函数是第一等公民。
    即函数与其他数据类型一样,处于平等地位,可以赋值给变量,也可以作为参数传入另一个函数,或者作为别的函数的返回值。
    2.只用表达式,不用语句
    表达式是一个单纯的运算过程,总有返回值;语句是执行某种操作,没有返回值。函数式编程每一步都是单纯的运算,而且都有返回值。
    原因是函数式编程的开发动机,一开始就是为了处理运算,不考虑系统的IO。语句属于对系统IO的操作,所以排除在外。
    3.没有副作用    所谓副作用,就是指函数内部与外部互动,产生运算以外的其他结果。函数式编程强调没有副作用,意味着要保持独立,所有的功能就是返回一个新的值,没有其他行为,尤其是不修改外部变量的值。
    4.不修改变量    函数式编程只返回新的值,不修改系统变量。在其他语言中,变量往往用来保持状态,不修改变量,即不能将状态保持在变量中,函数式编程使用参数保持状态,最好的例子就是递归。由于使用了递归,函数式编程的运行速度往往较慢。
    5.引用透明
    引用透明指的是函数的运行不依赖于外部变量或状态,只依赖于输入的参数,只要参数相同,返回的结果总是相同的。
函数式编程的价值
    1.代码简洁,开发迅速
    函数式编程大量使用函数,减少了代码的重复度,因此程序比较短,开发速度较快。
    2.接近自然语言,易于理解
    函数式编程的自由度很高,可以写出很接近自然语言的代码。
    3.更方便的代码管理
    函数式编程 不依赖也不改变外部环境,只要输入参数相同,即返回相同的结果。因此,每一个函数即可看做独立单元,有利于测试。
    4.易于并发编程
    函数式编程不需要考虑死锁,因为它不修改变量,所以根本不需要考虑死锁问题,函数之间并不会相互影响,因此可以用多线程进行处理。
    5.代码的热升级
    函数式编程没有副作用,即不修改外部变量,所有可以在运行状态下直接升级,不需要重启,也不需要停机。
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值