scala学习-函数式编程1

 

数学中的函数 

在数学中,函数是没有副作用的。比如说正弦函数y=sin(x)。不管函数怎么工作,结果都会返回给变量y。在函数内部,没有改变任何的全局状态。这种对全局的状态没有改变的函数我们成之为:没有副作用的函数,或纯函数。 

 

In computer science, a function or expression is said to have a side effect if, in addition to 

producing a value, it also modifies some state or has an observable interaction with calling 

functions or the outside world.  

 

(按:我理解的副作用就是,函数的一些行为破坏了函数的独立性,导致函数对上下文产生了影响。) 

 

这种特性极大的简化了分析,测试以及调试。你可以在对函数执行的上下文一无所知的情况下做这些事情,除非你调用了其他的函数。这种对上下文的忽视被称为引用透明性 

 

引用透明性是指:一个表达式可以和他的值相互替换,对程序是没有改变的。

 

Referential transparency (引用透明性) means that an expression (such as a function call) can be replaced with its value.

 

在函数编程中,你可以把几个函数组合起来形成另一个函数:

这表明函数可以被看做是值。换句话说,函数是一级的,就如同数据一样。你可以把函数指派给变量,也可以当做参数传递给其他的函数,同时也能够将函数作为返回值用在return语句中。在函数编程规范中,函数如同基础类型,是一种编程基础的构件块,如同整数和字符串。

 

一个函数把另一个函数当做参数,并返回一个函数,这种函数我们称之为高阶函数。在数学中微积分中的两个例子是微分和积分(按:关于微积分,我已经全部还给老师了,自己这里大概仅仅有一些概念。希望大家别和我一样)。

函数定义

转载于:https://my.oschina.net/clarkhill/blog/9259

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值