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

cl, flim



emacs-w3m グループに再入会してみたので、そのテストを兼ねて。


>> On Fri, 02 Mar 2001 11:47:22 +0900 (JST)
>> 「後」== gotoh@taiyo.co.jp (Shun-ichi GOTO) said as follows:

土> cl-macs の件ですが、dolist が入ってしまっていたのはうっかりミスです。

後> 手元ではdolist から while に戻してありますので、後ほどcommitします。

前言を翻すようで申し訳ないのですが、この件についてはもう少し考えません
か? 特に開発初期はコードの可読性を優先すべきだという気がしてきたので。


土> dolist は大変便利なので、私も使いたいのですが、たった一つのマクロのた
土> めに CL に依存するのも何だかな、という気がしています。

後> 個人利用のcodeは遠慮なくclを使ってますが、配付モノとなると
後> 悩むのですよね。しかも規模の小さいプログラムだと特に。
後> 幸い、dolistでないと複雑怪奇というわけでもありませんので
後> clなしでwhileでやりましょう。

後> # ほんと、なんで標準で入れてくれないのか不思議でならないのだけど(^_^;
後> # 便利だし、意味が通るし。
後> # これがないから、(while ...)の決まり文句がうっとおしく感じ、
後> # しまいにゃ mapcar を使ってしまう、というよくないシナリオが...

うーん、そんなに良くないシナリオですか? 私も mapcar を多用する人なんで
すが。処理速度が低下することは知ってますが、そんなに問題かなあ…。山岡
さんの mapcar2while.el に期待と言うところでしょうか。

while 使っててループ変数を更新するのを忘れて、無限ループにはまったこと
も何度もあって、それ以来 while はかなり嫌いになりました。と言うか、
while 使うと返り値が必ず nil になるのが関数的じゃないような気がします。
それから、ループ条件の制御にフラグ変数が余計に必要になることが多いのも
嫌なんですけど…。そのために、

    (catch 'last
      (while loop-condigin
        ...
        (if last-condition (throw 'last return-value))))

という定型文を多用することになるのですが、こうすると非局所脱出を使って
いるので、これに起因する速度低下が気になる。

と、こんなことを気にしていると、不毛なことになってくるので、最近は出来
るだけ気にしないようにしているのですが。


土> Emacs のプロセス間通信で標準エラー出力だけ取り除くというのはできないん
土> ですよねぇ…。さてどうしたものか。

後> call-process なら出来るのにstart-process は出来ないんですねぇ。

Perl で言うところの Open2 と Open3 の問題と同根のような気がします。標
準エラーを分離すると、途端にデッドロックしやすくなりますよね。


さて、このメールは無事に届くかな?

-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )
    http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/