lisp - 使用 Lisp 计算阶乘

标签 lisp common-lisp

我正在阅读一个使用 Lisp 计算阶乘的代码示例,如下所示:

(defun fatorial (n)
  (cond
    ((= n 1) 1)
    (t (* n (fatorial (- n 1))))))

所以,我想知道此代码示例中的 t 是什么?它在 Lisp 中有什么特殊含义吗?我进行了搜索,但找不到我的答案!

最佳答案

这是 LISP 用于表示 True 的符号。在 LISP 的 cond 中,末尾的“catch all”使用 t 表示如果前面的条件都不为 True,则此代码将始终执行。

在这里将其视为等同于 if-else 中的 else。不过,总的来说,它只代表 True。

关于lisp - 使用 Lisp 计算阶乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29722185/

相关文章:

list - 在 lisp 中左右旋转列表的 n 个元素的递归函数

string - Common Lisp 的 FORMAT 有反义词吗?

lisp - ' ('(LIST) ' 无 'NIL) should be a lambda expression in (hanoi(' ('(list)' ()'())))

Clojure:有人制作了一个工具来可视化代码的树结构吗?

lisp - call-with-current-continuation 只能用 lambda 和闭包来实现吗?

scheme - Common Lisp 和 Scheme 中 deftype 的区别

lisp - 首先从 LISP 中的列表中排序原子,然后排序子列表

lisp - 为什么不同函数之间的谓词命名约定不同?

enums - Common Lisp 中的可比较(可排名/可排序)枚举

common-lisp - 如何 (zerop #*000) 在普通 lisp 中?