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)))

hash-table-values の実装については ergoemacs に感謝します。

于 2014-07-02T07:27:06.223 に答える