[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:08980] popup-list と変数のスコープ



みなさまこんにちは、NANRIです。

popup-list に関して疑問に思ったことがありましたので質問します。

以下のようなコードにて
(foo 11)
を評価すると、msgbox で現れる num の値は 0 になりますが、
これはこういうものなのでしょうか?
(declare (special num)) とした時点で 
num は動的にバインドされているので、
11 になる事を自分は期待したのですが。

========サンプルコード========
(setq num 0)

(defun foo (num)
  (declare (special num))
  (func))
  
(defun func ()
  (popup-list
   '("123" "abc" "xyz")
   #'baz))

(defun baz (x)
  (msgbox "\"~A\" and \"~D\" " x num))
=====サンプルコード終わり=====

ちなみにこれはこういうものを作っているときに気付きました。
http://www.page.sannet.ne.jp/southly/www-history-20040331.lzh
HATTORIさんのwww-modeで閲覧履歴を保存するようにするコードです。
作っているうちにwww-modeで見ている時にも保存した履歴を見れるように
したくなって、OHKUBOさんのcsv-modeをそのまま使ってmodeをでっち上げて
しまいました。

-----
南里 征興(NANRI Masaoki)
southly@xxxxxxxxxxxx

Index Home