• 《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

  • 相关阅读:
    1703技术笔录
    技术开发感想
    1701技术随笔
    12月份技术随笔
    光照效果函数
    冰冻效果
    反色效果函数
    哈哈镜效果
    黑白效果函数
    羽化效果
  • 原文地址:https://www.cnblogs.com/moonlightpoet/p/5685085.html
Copyright © 2020-2023  润新知