《Lua程序设计》第6章 深入函数 学习笔记
在Lua中,函数是一种“第一类值(First-Class Value)”,它们具有特定的词法域(Lexical Scoping)。
“词法域”:函数可以潜逃在另一个函数中,内部的函数可以访问外部函数中的变量。它允许Lua在应用各种函数式语言(functional-language)中的强大编程技术。
Lua中最常见的函数编写方式,如:
function foo (x) return 2*x end
只是一种所谓的“语法糖”而已。也就是说,这只是以下代码的一种简化书写形式:
foo = function (x) return 2*x end
可以将表达式“function(x) <body> end”视为一种函数的构造式,将这种函数构造式的结果称为一种函数的构造式。
【匿名函数示例】
table哭啼攻了一个函数table.sort,它接受一个table并对其中的元素排序。
network = {
{name = "grauna", IP = "210.26.30.34"},
{name = "arrival", IP = "210.26.30.23"},
{name = "lua", IP = "210.26.23.12"},
{name = "derain", IP = "210.26.23.20"}
}
如果想以name字段、按反向的字符顺序来对这个table排序的话,只需这么写:
table.sort(network, function (a,b) return (a.name > b.name) end)
像sort这样的函数,接受另一个函数作为实参的,称其为一个高阶函数(high-order function)。
6.1 closure(闭合函数)
http://www.cnblogs.com/moonlightpoet/p/5684850.html
6.2 非全局的函数(non-global function)
……
6.3 正确的尾调用(proper tail call)
由于“尾调用”不会消耗栈空间,所以一个程序可以拥有无数嵌套的“尾调用”。
http://www.cnblogs.com/moonlightpoet/p/5685075.html
转载于:https://www.cnblogs.com/moonlightpoet/p/5685085.html
《Lua程序设计》第6章 深入函数 学习笔记相关推荐
- 《lua程序设计(第二版)》学习笔记(五)-- 函数基础
-- 第 5 章 函数-- 一种对语句和表达式进行抽象的主要机制 print(os.date()); -- 打印日期 Sun Apr 20 12:44:46 2014 -- 一看到sun,感慨广州没有 ...
- 计算机基础与程序设计(基于C语言)学习笔记
计算机基础与程序设计(基于C语言)学习笔记 前言 这是一个学习笔记 课程导入 在线学习工具:https://c.runoob.com/compile/11 为什么要学习程序设计 (1)存储程序和程序控 ...
- 《C++Primer》第九章-顺序容器-学习笔记(1)-顺序容器定义与操作
<C++Primer>第九章-顺序容器-学习笔记(1) 文章目录 <C++Primer>第九章-顺序容器-学习笔记(1) 摘要 顺序容器的定义 容器元素的初始化 将一个容器初始 ...
- algorithm头文件下的常用函数-学习笔记
algorithm头文件下的常用函数-学习笔记 max(x,y),min(x,y),abs(x) swap(x,y) reverse(it,it2) next_permutation() fill( ...
- c语言互质欧拉函数,互质与欧拉函数学习笔记
互质与欧拉函数学习笔记 互质 定义: \(\forall a,b\in \N\) ,若 \(gcd(a,b)=1\) ,则称 \(a,b\) 互质. 积性函数 定义: 如果 \(a,b\) 互 ...
- 第三章:zigbee学习笔记之物理层和mac层帧格式分析
本文原地址:https://blog.csdn.net/tainjau/article/details/81634681 IEEE802.15.4工作组致力于无线个人区域网络(wireless per ...
- Lua程序设计 | 字符串、表、函数与IO
From<Programming in Lua> by Roberto Ierusalimschy 文章目录 字符串 字符串常量 长字符串/多行字符串 强制类型转换 字符串标准库 表 表索 ...
- 鸟叔的linux私房菜:第0章 计算机概论学习笔记(Learning Notes for Basic Computer Theory)
本博客是针对<鸟叔的Linux私房菜 基础学习篇 第四版>的第0章 计算机概论的学习笔记. 1 电脑辅助人脑的好工具 11 计算机硬件的五大单元 12 一切设计的起点CPU的架构 其它单元 ...
- Excel常用功能和常用函数学习笔记
Excel学习笔记 --基于Excel for Mac 2016 第一章 Excel常用功能 第1节 认识excel 快速插入N行:选择N行(或列)-右键-插入,即可插入N行(或列) 移动列:选择列- ...
最新文章
- Android Gradle Plugin 源码解析(上)
- linux kernel进程切换(寄存器保存与恢复)
- Python中的eval--字符串解析
- C语言实现珠排序bead sort算法(附完整源码)
- SH760二自由度系统自由振动解析法求解
- java诺基亚nba,HMD 签约NBA 新秀劳里·马尔卡宁 为诺基亚手机品牌大使
- Kafka常见面试问题
- Pairwise 找到你的另一半
- ASC19 初赛要求自翻译
- 2011浙江省公务员考试申论大作文的写作
- 什么是PMU(PMIC)
- Sketch 插件导出切片
- LINKERD 2.11 中文实战手册
- 苹果iPhone 7价格差很多,谨慎购买!
- 【5G】5G通信网络中资源分配和负载均衡算法的matlab仿真
- Clusterrolebindings 创建错误
- VMM验证方法学学习随笔
- Windows强行关闭任务管理器无法结束的程序
- JavaScript:原生JS实现Facebook实时消息抓捕
- 怎么购买苹果教育优惠产品?苹果在线商店购买教育优惠产品的具体流程