[xyzzy:01908] Re: incf(かな ?)
- Subject: [xyzzy:01908] Re: incf(かな ?)
- From: Seiya Suda <EZU11330@xxxxxxxxxxxxxxxx>
- X-mailer: Denshin 8 Go V321.2b5
- X-yzzy-version: 0.0.0.73
亀井さん、こんにちは。
Sun, 14 Feb 1999 00:20:45 +0900 の
[xyzzy:01906] Re: incf(かな ?)
への返事です。
> z が常に初期化されているからです。グローバル変数とかクロージャ
> とかで前回の z を覚えておいて、(eq *last-command* 'lister-walk-marked-dir)
> なら 1 引く、そうでなければ (1- (length *lister-marked-dir*))
> を設定する、てな感じの処理にしないとうまくいきません。
もともと数学的センスがないので、数が出て来るとおたおたしてしまいます。
クロージャというのはおおよそ、funcall なんかと関係あるのかな、くらいし
か、おべんきょしてもわからなかったので、グローバル変数方式をとりました。
改善すべき点があるにきまってると思いますが、あったらよろしくお願いしま
す。どうもありがとうございました(クロージャというのは elisp にはないよ
うですね)。
(defvar *nth-marked-dir* 0)
(defun lister-mark-dir ()
(interactive)
(popup-string "カレントディレクトリをマークしました" (point-min) 1)
(setq *lister-marked-dir* (cons (default-directory) *lister-marked-dir*)))
(defun lister-walk-marked-dir ()
(interactive)
(if (= (length *lister-marked-dir*) 0)
(popup-string "ディレクトリがマークされていません" (point-min) 1)
(if (eq *last-command* 'lister-walk-marked-dir)
(progn
(cond ((= *nth-marked-dir* (- (length *lister-marked-dir*) 1))
(setq *nth-marked-dir* 0))
(t (setq *nth-marked-dir* (incf *nth-marked-dir*))))
(lister-change-dir (nth *nth-marked-dir* *lister-marked-dir*)))
(progn
(setq *nth-marked-dir* 0)
(lister-change-dir (nth *nth-marked-dir* *lister-marked-dir*))))))
--------
須田誠也(suda seiya)
EZU11330@xxxxxxxxxxx