部分的なplistのcl-destructuring-bind?
これによりエラーが発生します (cl-destructuring-bind (&key a b) '(:a "foo" :b 13 :c "bar") (list a b)) :cキー/値はパターン一致で処理されないためです。 多くの場合、plistからキー/値のサブセットを抽出したいと思ってcl-destructuring-bindいますが、この制限のため適切ではありません。 cl-destructuring-bindEXPRで一致しないキーを単に無視する方法はありますか?公式の一般的なlispの動作がどうなっているのかわかりませんが、仕様のエラーですか? ダッシュライブラリは、を使用した同様のデストラチャをサポートしています-letが、各キーにシンボルを割り当てるためのボイラープレートが必要です。修正が提案されています ステファンの答えを考慮に入れると、これはうまくいきます: (defmacro plist-bind (args expr &rest body) "`destructuring-bind' without the boilerplate for plists." `(cl-destructuring-bind (&key ,@args &allow-other-keys) ,expr ,@body)) (plist-bind (a b) '(:a "foo" :b 13 :c "bar") (list a b)) => …