common-lisp - 普通 lisp 中的这些命名从何而来?

标签 common-lisp

在普通的 lisp 中,labelsflet 这两个名字对我来说有些奇怪。

flet 可以描述为 f 函数的一种 let。所以就这样命名了。 标签呢?

getfsetfremf 的“f”从何而来?

谢谢。

最佳答案

LABEL(没有 s)是一个非常古老的(来自早期的 Lisp 方言)构造,它允许给函数命名,以便它可以使用该名称调用自身:

类似于(这不是有效的 Common Lisp):

(label 'ff (lambda (x) (if (foo) (bar) (ff (baz)))))

标签是一个有名字的函数。

对于 Common Lisp,此名称已被回收。 LABELS 现在允许定义可以通过名称调用自身的局部函数。

关于common-lisp - 普通 lisp 中的这些命名从何而来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1886212/

相关文章:

inheritance - 检查对象的父类

lisp - #+# 是什么意思?是什么意思?

compiler-errors - Lisp 非法函数调用,

common-lisp - 如何在 sbcl 中存储映射 tmpfs 文件?

lisp - 如何避免在 Common Lisp 中完成脚本?

lua - 嵌入语言: Lua vs Common Lisp (ECL)

lisp - 在 Windows 上,CR 仍然在 Common Lisp 中的 read-line 之后

emacs - 在 Slime REPL (GNU EMACS) 中,清除当前输入的快捷方式是什么

lisp - 从嵌套列表中删除

macros - 在 Lisp 宏的 lambda 列表中组合 &key 和 &rest 的最佳方式是什么?