我现在正在使用emacs 24.3,因此hash-table-values
不可用。所以我想写这个函数,但前提是它不存在。这样,我的代码现在可以正常工作,并且当我切换到emacs 24.4时它会使用默认功能。
在PHP中,我写了类似的东西:
if (!function_exists('hash_table_values')) {
function hash_table_values() {}
}
在elisp中是否有一些等同物?
答案 0 :(得分: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)))
感谢hash-table-values实施的ergoemacs。