LUA 函数式编程demo
2016-07-24 23:41
597 查看
什么是函数式编程
http://www.zhihu.com/topic/19585411/hot 函数式编程的本质
函数式编程中的函数这个术语不是指计算机中的函数(实际上是Subroutine),而是指数学中的函数,即自变量的映射。也就是说一个函数的值仅决定于函数参数的值,不依赖其他状态。比如sqrt(x)函数计算x的平方根,只要x不变,不论什么时候调用,调用几次,值都是不变的。
在函数式语言中,函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,可以对函数进行组合。
作者:用心阁
链接:http://www.zhihu.com/question/28292740/answer/40336090
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
函数式编程中的函数这个术语不是指计算机中的函数(实际上是Subroutine),而是指数学中的函数,即自变量的映射。也就是说一个函数的值仅决定于函数参数的值,不依赖其他状态。比如sqrt(x)函数计算x的平方根,只要x不变,不论什么时候调用,调用几次,值都是不变的。
在函数式语言中,函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,可以对函数进行组合。
作者:用心阁
链接:http://www.zhihu.com/question/28292740/answer/40336090
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
例子
function makeEnscapeHandler(func, preprocess) return function(num) num = preprocess(num) func(num) end end local function plusOneFunc(num) return num+1 end local printPlusOne = makeEnscapeHandler(print, plusOneFunc) printPlusOne(1)
相关文章推荐
- lua 字符串处理
- Lua Go R HEXO 简单介绍
- LUA 创建文件和文件夹
- lua lfs库
- 150. Evaluate Reverse Polish Notation
- 一、windows 下安装并使用 lua
- 如何创建一个 Lua 模块
- 如何创建一个 Lua 模块
- LUA学习笔记(第18-20章)
- LUA学习笔记(第18-20章)
- 安卓属性动画之插值器(TimeInterpolator)和估值器(TypeEvaluator)
- lua MVC框架 Orbit初探
- Lua教程(二十二)
- lua os.date()
- leetcode_c++:栈:Evaluate Reverse Polish Notation(150)
- How to evaluate and motivate a speech
- leetcode150 Evaluate Reverse Polish Notation
- leetcode150 Evaluate Reverse Polish Notation
- Evaluation
- sublime 设置自动把某个文件按指定语法解析