キーが存在しない場合のデフォルト値を設定する - lisp-cookbook-ja/common-lisp GitHub Wiki

ハッシュ

キーが存在しない場合のデフォルト値を設定する

ハッシュテーブルのデフォルト値は処理系依存になっています。

デフォルトの値を設定しキーが存在しない場合に返すとすると、2値目を判定して動作する、下記のようなコードが考えられるでしょう。

(let ((ht (make-hash-table :test #'equal))
      (default 100))
  (setf (gethash "apple" ht) 150
        (gethash "banana" ht) 300
        (gethash "lemon" ht) 300)
  (multiple-value-bind (val win) (gethash "papaia" ht)
    (if win val default)))
;=> 100