一个有意思的递归定义

简介: 最近在看一本《WEB全栈工程师的自我修养》一书,其中涉及到了npm这个词的意义,非常有意思。 一般人可能以为npm是Node Package Manager的缩写,但实际上不是这样的,npm不是Node Package Manager的首字母缩写,所以不能全大写。

最近在看一本《WEB全栈工程师的自我修养》一书,其中涉及到了npm这个词的意义,非常有意思。

一般人可能以为npm是Node Package Manager的缩写,但实际上不是这样的,npm不是Node Package Manager的首字母缩写,所以不能全大写。npm是“npm is not an acronym”(npm不是一个缩写)这个递归定义的简写。

是不是很绕?呵呵。

递归定义是指一种在定义中引用他自身的定义方法,在程序中引用自己称为递归,因为自身是递归的,所以无法精确地解释出他的真正全称。我们熟知的VISA其实就是一种递归定义,VISA的意义是VISA Internation Service Association,还有PNG,PNG is Not Gif。

再读一遍npm的递归定义“npm is not an acronym”,按理他的缩写应该是ninaa,但是这样就成了acronym(缩写)了,就是错误的,所以只能简称他为npm,我们不知道他是什么,但可以肯定的是,他不是一个缩写。

是不是有点崩溃?这还有一段:

npm可以大写么?
不可以,因为npm不是一个缩写
那npm是什么单词的缩写么?
是“npm不是一个缩写”的简写。

目录
相关文章
|
1天前
|
JSON JavaScript 前端开发
除了递归比较,还有哪些方法可以进行深比较?
【10月更文挑战第29天】在实际应用中,可以根据具体的项目需求、数据结构特点以及性能要求等因素,选择合适的深比较方法。如果对性能要求不高且数据结构较简单,JSON序列化比较可能是一个简单有效的选择;如果需要处理复杂的数据结构和各种特殊情况,使用lodash或underscore.js等成熟的库可能更为可靠和便捷;而对于一些具有特殊比较逻辑的场景,则可以考虑编写自定义的比较函数。
|
5月前
看了那么多的函数递归的文章,看懂了但不会用,看看这篇吧!
看了那么多的函数递归的文章,看懂了但不会用,看看这篇吧!
|
6月前
|
机器学习/深度学习 算法
加深理解函数递归
加深理解函数递归
|
6月前
|
机器学习/深度学习 编译器 C语言
关于函数递归的基础
关于函数递归的基础
52 5
|
6月前
|
自然语言处理 算法 编译器
编译原理复习四:编译器结构 消除左递归、左公因子 最右推导 寻找句柄讲解(附题目和答案)
编译原理复习四:编译器结构 消除左递归、左公因子 最右推导 寻找句柄讲解(附题目和答案)
149 0
|
6月前
|
机器学习/深度学习
浅学函数递归
浅学函数递归
|
存储 编译器 C语言
【C】函数真的难嘛?其实一点也不难,原理很简单。
# 什么是函数 程序是由多个零件组合而成的,而函数就是这种“零件”的一个较小单位。 ## main函数和库函数 C语言程序中,main函数是必不可少的。程序运行的时候,会执行main函数的主题部分。main函数中使用了printf、scanf、puts等函数。由C语言提供的这些为数众多的函数称为库函数。 ## 什么是函数 当然,我们也可以自己创建函数。而实际上,我们也必须亲自动手创建各种函数。下面我们来自己创建一个简单的函数。 创建一个函数,接收两个整数参数,返回较大整数的值。 printf函数和scanf函数等创建得比较好得函数,即使不知道其内容,只要了解使用方法,也可以轻松使用。 ## 函
|
机器学习/深度学习 Java 程序员
教你精通Java语法之第十二章、递归
内层函数调用(子集处理)完成,外层函数才能算调用完成。
65 0
|
机器学习/深度学习 算法 C语言
函数递归-------套娃套路深,要么你玩递归,要么递归玩你
函数递归-------套娃套路深,要么你玩递归,要么递归玩你
|
Python
如何写出你的第一个递归函数?
如何写出你的第一个递归函数?
83 0