13

やりたい

(destructuring-bind (start end) (bounds-of-thing-at-point 'symbol))

ただしbounds-of-thing-at-point、リストではなくコンスセルを返すため、 destructuring-bind機能しません。この場合、何がうまくいくでしょうか?

4

4 に答える 4

25

destructuring-bindはパッケージのマクロであるためcl、Common Lisp のドキュメントでさらに例を調べる価値があるかもしれません。

このページには、マクロの構文が表示されます。に注意してください(wholevar reqvars optvars . var)clのバージョンがあまり一般的ではないすべてのケースを実際にサポートしているかどうかはわかりませんがdestructuring-bind(多くのキーワードは、Common Lisp マクロ/関数で使用する場合にのみ意味がありますが、Emacs Lisp ではその意味を持ちません)。

したがって:

(destructuring-bind (start . end) (bounds-of-thing-at-point 'symbol) ;...)

動作するはずです。

于 2013-07-18T11:20:40.353 に答える
8

私は使うだろう

(pcase-let ((`(,start . ,end) (bounds-of-thing-at-point 'symbol)))
  ...)
于 2013-07-22T14:45:12.603 に答える
3

destructuring-bind ほどエレガントなものは考えられませんが、これは機能します。

(let* ((b (bounds-of-thing-at-point 'symbol))
       (start (car b))
       (end   (cdr b)))
  ...)
于 2013-07-18T09:49:19.843 に答える