在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章 深入函数 学习笔记相关推荐

  1. 《lua程序设计(第二版)》学习笔记(五)-- 函数基础

    -- 第 5 章 函数-- 一种对语句和表达式进行抽象的主要机制 print(os.date()); -- 打印日期 Sun Apr 20 12:44:46 2014 -- 一看到sun,感慨广州没有 ...

  2. 计算机基础与程序设计(基于C语言)学习笔记

    计算机基础与程序设计(基于C语言)学习笔记 前言 这是一个学习笔记 课程导入 在线学习工具:https://c.runoob.com/compile/11 为什么要学习程序设计 (1)存储程序和程序控 ...

  3. 《C++Primer》第九章-顺序容器-学习笔记(1)-顺序容器定义与操作

    <C++Primer>第九章-顺序容器-学习笔记(1) 文章目录 <C++Primer>第九章-顺序容器-学习笔记(1) 摘要 顺序容器的定义 容器元素的初始化 将一个容器初始 ...

  4. algorithm头文件下的常用函数-学习笔记

    algorithm头文件下的常用函数-学习笔记 max(x,y),min(x,y),abs(x) swap(x,y) reverse(it,it2) next_permutation() fill( ...

  5. c语言互质欧拉函数,互质与欧拉函数学习笔记

    互质与欧拉函数学习笔记 互质 定义: ​ \(\forall a,b\in \N\) ,若 \(gcd(a,b)=1\) ,则称 \(a,b\) 互质. 积性函数 定义: ​ 如果 \(a,b\) 互 ...

  6. 第三章:zigbee学习笔记之物理层和mac层帧格式分析

    本文原地址:https://blog.csdn.net/tainjau/article/details/81634681 IEEE802.15.4工作组致力于无线个人区域网络(wireless per ...

  7. Lua程序设计 | 字符串、表、函数与IO

    From<Programming in Lua> by Roberto Ierusalimschy 文章目录 字符串 字符串常量 长字符串/多行字符串 强制类型转换 字符串标准库 表 表索 ...

  8. 鸟叔的linux私房菜:第0章 计算机概论学习笔记(Learning Notes for Basic Computer Theory)

    本博客是针对<鸟叔的Linux私房菜 基础学习篇 第四版>的第0章 计算机概论的学习笔记. 1 电脑辅助人脑的好工具 11 计算机硬件的五大单元 12 一切设计的起点CPU的架构 其它单元 ...

  9. Excel常用功能和常用函数学习笔记

    Excel学习笔记 --基于Excel for Mac 2016 第一章 Excel常用功能 第1节 认识excel 快速插入N行:选择N行(或列)-右键-插入,即可插入N行(或列) 移动列:选择列- ...

最新文章

  1. Android Gradle Plugin 源码解析(上)
  2. linux kernel进程切换(寄存器保存与恢复)
  3. Python中的eval--字符串解析
  4. C语言实现珠排序bead sort算法(附完整源码)
  5. SH760二自由度系统自由振动解析法求解
  6. java诺基亚nba,HMD 签约NBA 新秀劳里·马尔卡宁 为诺基亚手机品牌大使
  7. Kafka常见面试问题
  8. Pairwise 找到你的另一半
  9. ASC19 初赛要求自翻译
  10. 2011浙江省公务员考试申论大作文的写作
  11. 什么是PMU(PMIC)
  12. Sketch 插件导出切片
  13. LINKERD 2.11 中文实战手册
  14. 苹果iPhone 7价格差很多,谨慎购买!
  15. 【5G】5G通信网络中资源分配和负载均衡算法的matlab仿真
  16. Clusterrolebindings 创建错误
  17. VMM验证方法学学习随笔
  18. Windows强行关闭任务管理器无法结束的程序
  19. JavaScript:原生JS实现Facebook实时消息抓捕
  20. 怎么购买苹果教育优惠产品?苹果在线商店购买教育优惠产品的具体流程

热门文章

  1. Android DHCP 启动分析【2】
  2. 选择判断语句(switch)
  3. FTPFileUtil_FTP文件上传 (spring boot)
  4. 框架应用 : Spring - 开发详述
  5. DOM修改元素的方法总结
  6. mac shell命令连接mongo
  7. OC语言--SEL类型小记
  8. C++字符串函数与C字符串函数比较
  9. ThinkPHP框架学习之使用数组进行查询
  10. javascript--this总结