emacs - 有谁知道函数结束后是否可以在 elisp 的控制台中不返回任何内容?

标签 emacs lisp elisp return-value

现在,每当我尝试不返回任何内容时,我都会得到 nil 或 t。我的函数的最后一个点以 if 语句结束,该语句体内没有任何内容。像这样:

(if (counter<ten)
    ()
    (...))

最佳答案

你的“体内什么都没有”并不是什么都没有——它是一个空列表(),与NIL相同。

在 Common Lisp 中,您可以使用 values 形式返回任意数量的值 - 包括零:

* (defun funny (counter ten)
     (if (< counter ten)
         (values)
         (values 'foo 42)))
FUNNY
* (funny 10 10)
FOO
42
* (funny 9 10)
; No value

在 Emacs Lisp 中,您始终只返回一个值。

关于emacs - 有谁知道函数结束后是否可以在 elisp 的控制台中不返回任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28447546/

相关文章:

emacs - Emacs 命令的打开定义

macos - Emacs:无效字节操作码:op=183,ptr=2 使用 ace-window 切换窗口

emacs - 如何在 Emacs 中使用通用键绑定(bind)弹出本地和全局标记

emacs - 如何在 Emacs 中创建区分大小写的键绑定(bind)?

c - 用于编译 C 文件的 emacs 键绑定(bind)

Emacs:如何仅在常规缓冲区而不是迷你缓冲区中绑定(bind) key ?

debugging - 如何从 Common Lisp REPL 提示中检查已定义函数的列表

hash - 获取 Common Lisp 中任何类型对象的哈希值

sql - 如何让 CLSQL 在非标准目录中查找 mysql.h?

emacs - 窄缓冲区,使用 org-match-sparse-tree?