九、附录 b:术语表
本附录涵盖了本书中使用的一些重要术语:
- 匿名函数:一个没有名字,不绑定任何变量的函数。它也被称为λ表达式。
- 回调:一个函数,可以传递给另一个函数在以后的事件中使用。
- 范畴:用范畴论的来说,一个范畴是同类事物的集合。在 JavaScript 中,类别可以是包含对象的数组或对象,这些对象都被显式声明为数字、字符串、布尔值、日期、对象等。
- 范畴理论:一个概念将数学结构组织成对象的集合和对这些对象的操作。计算机程序中使用的数据类型和函数构成了本书使用的类别。
- 闭包:一个环境,在其中定义的函数可以访问在它之外不可用的局部变量。
- 耦合:每个程序模块依赖于其他每个模块的程度。函数式编程减少了程序内的耦合量。
- Currying:将具有多个参数的函数转换为具有一个参数的函数的过程,该函数返回另一个可以根据需要接受更多参数的函数。形式上,一个带有 N 参数的函数可以转化为一个由 N 个函数组成的函数链,每个函数只有一个参数。
- 声明式编程:一种编程风格,表达解决问题所需的计算逻辑。电脑被告知问题是什么,而不是解决问题所需的程序。
- 内函子:将类别映射到自身的函子。
- 功能组合:将多个功能组合成一个功能的过程。每个函数的结果都作为参数传递给下一个函数,最后一个函数的结果就是整个组合的结果。
- 函数式语言:一种便于函数式编程的计算机语言。
- 函数式编程:一种声明式编程范式,专注于将函数视为数学表达式,避免可变数据和状态变化。
- 功能性反应式编程:一种风格的功能性编程,其关注的是随着时间的推移响应事件而变化的反应式元素和变量。
- 函子:类别之间的映射。
- 高阶函数:以一个或多个函数作为输入,返回一个函数作为输出的函数。
- 继承:面向对象编程功能,允许一个类从另一个类继承成员变量和方法。
- Lambda 表达式:参见匿名函数。
- 懒惰评估:一种计算机语言评估策略,将表达式的评估延迟到需要其值时。这种策略的反面叫做急切评价或贪婪评价。懒惰评估也称为按需调用。
- 库:一组对象和函数,它们有一个定义良好的接口,允许第三方程序调用它们的行为。
- 记忆化:存储昂贵函数调用结果的技术。当稍后使用相同的参数调用该函数时,将返回存储的结果,而不是再次计算结果。
- 方法链:中的一种模式,通过将一个方法的输出直接传递给下一个方法的输入,可以并行调用许多方法。这避免了将中间值赋给临时变量的需要。
- Mixin :一个对象,可以允许其他对象使用它的方法。这些方法仅用于其他对象,mixin 对象本身永远不会被实例化。
- 模块化:程序可以分解成独立代码模块的程度。函数式编程增加了程序的模块化。
- Monad :提供函子所需封装的结构。
- Morphism :一个纯函数,只对某个类别起作用,当给定一组特定的输入时,总是返回相同的输出。同态操作仅限于单个类别,而多态操作可以操作多个类别。
- 部分应用:将值绑定到函数的一个或多个参数的过程。它返回一个部分应用的函数,该函数又接受剩余的未绑定参数。
- Polyfill :一个函数,用来用新的功能扩充原型。它允许我们调用新函数作为前一个函数的方法。
- 纯函数:一个函数,其输出值仅取决于作为函数输入的参数。因此,调用一个函数, f ,两次相同的参数值, x ,每次都会产生相同的结果, f(x) 。
- 递归函数:调用自身的函数。这种函数依赖于同一问题的较小实例的解来计算较大问题的解。像迭代一样,递归是重复调用同一代码块的另一种方式。但是,与迭代不同,递归要求代码块定义重复代码调用应该终止的情况,称为基本情况。
- 可重用性:一段代码(通常是 JavaScript 中的一个函数)可以在同一程序的其他部分或其他程序中重用的程度。
- 自调用函数:定义后立即调用的匿名函数。在 JavaScript 中,这是通过在函数表达式后放置一对括号来实现的。
- 策略模式:一种用于定义一系列可互换算法的方法。
- 尾部递归:一种基于栈的递归实现。对于每个递归调用,堆栈中都有一个新的帧。
- 工具包:一个小的软件库,提供了一套功能供程序员使用。与库相比,工具包更简单,与调用它的程序的耦合也更少。
- 蹦床:递归的策略,在不提供这种特性的编程语言中提供尾调用消除,比如 JavaScript。
- Y-组合子:Lambda 演算中的定点组合子,消除显式递归。当它作为返回递归函数的函数的输入时,Y-combinator 返回该函数的不动点,这是从递归函数到非递归函数的转换。
版权属于:月萌API www.moonapi.com,转载请注明出处