1

我现在使用的是 emacs 24.3,所以hash-table-values不可用。所以我想写这个函数,但前提是它不存在。这样,我的代码现在可以工作,当我切换到 emacs 24.4 时,它将使用默认函数。

在 PHP 中,我会写如下内容:

if (!function_exists('hash_table_values')) {
    function hash_table_values() {}
}

elisp中是否有一些等价物?

4

1 回答 1

3

感谢#emacs@freenode 的一些指导,这里是神奇的功能:fboundp.

(unless (fboundp 'fn)
  (defun fn ()))

对于真正的实现hash-table-values

(unless (fboundp 'hash-table-values)
  (defun hash-table-values (hashtable)
    (let (allvals)
      (maphash (lambda (_kk vv) (push vv allvals)) hashtable)
    allvals)))

感谢 ergoemacs 的哈希表值实现。

于 2014-07-02T07:27:06.223 回答