[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/03 02:06 / Filesize : 277 KB / Number-of Response : 955
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【叩かれて】Emacs Lisp道場【強くなれ】



1 名前:おっす [03/09/18 19:29]
なんとなくEmacs 触り始めて、なんとなくelispにも手を出して
しまったアナタ。

なんとなく書いてしまったコードをココに書き込んで叩かれましょう。
タタカレテツヨクナレ。

年季の入った玄人衆は、もしアドバイスできたらお願いします。
いや、叩きついでにでも。

とりあえず入門書は
ttp://www.netfort.gr.jp/~kiyoka/emacs_setq/emacs_setq.html
ttp://www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp.html

リファレンスマニュアルは(ちと古い)
ttp://www.fan.gr.jp/~ring/doc/elisp-manual/elisp.html

とか、新しいのは(でも英語)
ttp://www.delorie.com/gnu/docs/elisp-manual-21/elisp.html

ではひとつ、コード中心の熱いバトルをよろぴく。


201 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 19:22]
書けるよ

202 名前:鬱­猫­2030 ◆utuPOcVnl. mailto:utucat@yahoo.co.jp [04/05/12 21:20]
ネット関係のライブラリが標準で用意されているのですか?
P2P関係のものを何か作りたいのですがtcp/ip層までいじれますか?


203 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 21:43]
リリースされてる版だと、Emacs Lisp からできるのは TCP の connect(2) だけ。
accept(2) へのインターフェイスは 用意されてないから P2P やりたいなら
下請けの外部プログラムが必要。

204 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/13 00:53]
M-x namazu とする代わりに F2 キーでカーソルのある単語を検索できればと思い,
namazu.el を読んだ上で以下のように設定しました
しかしこの設定で F2 キーを叩いても,
別のバッファが開いて「32 件検索しました」 という
メッセージが出るところまで行くのですが
検索結果がでません どこを直せばよいのでしょうか
(global-set-key [(f2)]
  (lambda ()
    (interactive)
    (namazu namazu-search-num namazu-default-dir
          (current-word))) )


205 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/13 04:54]
namazu の最初の引数は PAGE-NUM みたいなので普通は 0 でしょう。

206 名前:204 mailto:sage [04/05/14 00:09]
>>205 コメントありがとうございます 
0 を入れてみたのですが改善しませんでした
出力結果は以下のようにヘッダとフッタだけ出てるようで中身が出ません
M-x namazu でインタラクティブに実行するのは問題ないのですが。。。

検索結果
参考ヒット数: [ BufferedReader: 52 ]

検索式にマッチする 52 個の文書が見つかりました。

現在のリスト: 1 - 0
ペイジ: [1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20]

207 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 00:35]
namazu-search-num が 0 になってない?

(namazu namazu-search-num namazu-default-dir (current-word))
で namazu-search-num を 0 にするんじゃなくて、

(namazu 0 namazu-default-dir (current-word))
にしたら? ってこと。

208 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 14:01]
読書メモの為に下みたいなのを挿入したいのですけども。

Date:2004-01-26
Page:
Memo:

で、ムチャクソ頑張って下みたいなのを書きました。

(defun bookz ()
"Retune the current time as a string in Date from."
(format-time-string "Date:%04Y-%02m-%02d\nPage:\nMemo:")
)
(defun insert-bookz nil
"Insert bookz."
(interactive)
(insert (bookz))
)
(define-key global-map "\C-c\C-d" 'insert-bookz)

なんかもっと綺麗に書く方法とかありますか?

209 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 15:39]
>>208
> なんかもっと綺麗に書く方法とかありますか?
ispellを使う、とか



210 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 16:34]
しかしそれでもfromを見つけられない罠

211 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 17:04]
queequegも利用してみるとか? 試したことないけど。

212 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 18:41]
そのまま翻訳にかけてみるのも手かもな

213 名前:204,206 [04/05/19 22:32]
>>207 コメントありがとうございます
namazu-search-num が 0 になってない?
おかげさまで以下のようにしてうまく行きました
(setq namazu-search-num 20)
...
(namazu 0 namazu-default-dir (current-word))
てっきりnamazu-search-num と
namazu の第一引数は同じにするものだと思いこんでいました
ありがとうございました

214 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/26 15:39]
(defun display-binaried-file (file)
(interactive "fFilename: ")
(with-output-to-temp-buffer "Binary"
(with-temp-buffer
(let ((addr 0)
s)
(insert-file-literally file)
(goto-char (point-min))
(while (re-search-forward "\\=\\(?:.\\|\n\\)\\{1,8\\}" nil t)
(princ (format "%08X:" addr))
(setq s (match-string 0)
addr (+ 8 addr))
(mapc (lambda (c)
(princ " ")
(dotimes (i 8)
(princ (if (zerop (logand 128 c)) "0" "1"))
(setq c (lsh c 1))))
s)
(princ (format "%s %s\n"
(make-string (* 9 (- 8 (length s))) ?\040)
(mapconcat (lambda (c)
(if (and (<= 32 c) (< c 127))
(char-to-string c)
"."))
s
nil))))))))


215 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/26 15:49]

>>214
あんがとね。
いやー、あんた最高だよ。


216 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/28 20:45]
>>214
イイ!!

> (mapc (lambda (c)
> (princ " ")
> (dotimes (i 8)
> (princ (if (zerop (logand 128 c)) "0" "1"))
> (setq c (lsh c 1))))
> s)

でもここはdotimesよりそのまんま

(princ (if (zerop (logand 128 c)) "0" "1"))
(setq c (lsh c 1))
(princ (if (zerop (logand 128 c)) "0" "1"))
(setq c (lsh c 1)) ....

のように羅列した方が少々早くなんない?(コードが汚くなるのは認めるけど)
1 character ずつ dotimes やってたら大きなファイルの時に
かなり遅れるかもしれんし。

217 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/28 21:27]
速度命!ならビットパターンを表す文字列をキャッシュしといた方が簡単確実。


218 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/28 23:47]
>>216
速度を考えるなら、大量のリストや文字列を作らないようにすることも重要と
考えている。その点で 214 は文字列に関してちょっとイージー、というか所
詮ワンショットの関数。バッファ終端の判定を楽にしたいという理由だけで8
バイトずつ文字列に突っ込んでいる。

> (princ (if (zerop (logand 128 c)) "0" "1"))
> (setq c (lsh c 1))
> (princ (if (zerop (logand 128 c)) "0" "1"))
> (setq c (lsh c 1)) ....
せめて、
(princ (if (zerop (logand 128 c)) "0" "1"))
(princ (if (zerop (logand 64 c)) "0" "1"))
(princ (if (zerop (logand 32 c)) "0" "1")) ...
だな。
(princ (mapconcat
(lambda (mask) (if (zerop (logand mask c)) "0" "1"))
'(128 64 32 16 8 4 2 1)
nil))
はありだった。

insert-file-literally は insert-file-contents-literally じゃなきゃだめ。


219 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 02:41]
(do ((x 128 (rsh x 1)))
((<= x 0))
(princ (if (zerop (logand x c)) "0" "1")))



220 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 03:06]
たった 256 個だから
(defconst byte-to-bit-string
(let ((v (make-vector 256 nil)))
(dotimes (i 256) ...)))
してあらかじめ作っとけばいいじゃん。

221 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 11:45]
(defconst byte-to-bit-string
(let ((a '("0" "1"))
(f (lambda (&rest x)
(let ((x (reverse x)) (r '("")))
(while x
(setq r (apply #'append (mapcar (lambda (x) (mapcar (lambda (y) (concat x y)) r)) (car x))))
(setq x (cdr x)))
r))))
(funcall f a a a a a a a a)))

222 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 12:05]
なんかビット絡みはついてけない(´・ω・`)ショボーン

223 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 14:07]
>>219
rshって、remote shellで実行するのか?

昔から思ってたんだけど、logand/logiorってRMSのチョンボだな。
logicalじゃなくてarithmaticだろ。
またnatnumpってのもあるけど、0はnatunal numberじゃない。


224 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 14:13]
>>223
> 0はnatunal numberじゃない。
定義による。
0を自然数に含めることもある。
ttp://www.ss.u-tokai.ac.jp/~itai/column/three.html

225 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 14:32]
>>224
そうか。
じゃMITじゃビットAND/ORもlogicalって呼ぶのかもしれないな

226 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 14:39]
>>223
aithmatic じゃなくて bit-and/or operatorか。


227 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 16:17]
(defun write-binaried-file (filename)
(interactive (list (read-file-name "Write file: " nil buffer-file-name
nil buffer-file-name)))
(let (i
buf
temp-buffer-show-hook)
(with-output-to-temp-buffer " *outbuf*"
(save-excursion
(save-restriction
(widen)
(goto-char (point-min))
(while (re-search-forward "^\\([0-F]+\\): +\\(?:\\(?:[01]\\{8\\}\\) \\)\\{8\\}" nil t)
(goto-char (match-end 1))
(setq i 0)
(while (< i 8)
(re-search-forward "[01]+")
(princ (char-to-string (string-to-number (match-string 0) 2)))
(setq i (1+ i))))
(if (re-search-forward "^\\([0-F]+\\): +\\([01]\\{8\\}\\) ")
(progn
(goto-char (match-beginning 2))
(setq i 0)
(while (and (< i 8) (re-search-forward "\\=\\([01]\\{8\\}\\) " nil t))
(princ (char-to-string (string-to-number (match-string 1) 2)))
(setq i (1+ i)))))
(setq buf standard-output))))
(set-buffer buf)
(let ((coding-system-for-write 'no-conversion))
(write-region (point-min) (point-max) filename))
(kill-buffer buf)))


228 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 17:02]
>>227
save-XX 2つはwith-output-to-temp-bufferの外の方がよかった。

エラーチェックなんてほとんどしてないので、上書きとかしない方がいいかも。


229 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 17:37]
たいしたことではなくてすまんのだが、write-binaried-file
はwrite-file-in-binaryの方がアメ人側からするとわかりやすいとおもた。



230 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 17:55]
今になって知ったんだが、hexl-modeは外部プログラムを使ってたんだな。

2進表示より、右側に全角文字を表示をして欲しいんだが、そういうことを考
えると、やっぱelispだ。


231 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 18:08]
全角文字

232 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/30 20:15]
----BEGIN BASE64----(binary-dump.el.gz)
H4sICJnAuUAAC2JpbmFyeS1kdW1wLmVsAKVY227jNhB9tr/iwEBjqjUDy/fUcdwm
zQIF+lT0cR8qS0wsrCx5KWWzBop+e4ek7rKcRM2LKR7OhTPDM2TW6zV2fujIE/de
DsdrEYBzDtcN4EaeHz4jPsWJOOApkvD8+Bg4JzVrZKBl+mtS8sC/48/Hv+CW1enZ
B/6ET7//8YgkQiyEGfthVUWfiW9OwF/3IuRudDj6gaA5Tzy90EKP3OFSOB7fnRIB
5lt9gAUiAWNSPNNEmAgZgpGTByfBQP7gDWhBvIcPblvqjyRIxn8C22BMWPTshB5s
+AT1/lZ6HA8j0maByTl+2sCmkZrA7YpEUg1AthZyZqGx9p+NmtcGq+6/Sj8RfO/v
fPJarSSPDxSBJJJKM2lVvmkdVxhp323Yc4sUa1Fs7WI4Lu+nLjPrIDPtIDPpIGN3
kBl/XAY3HWRWb8iY71Epby1JDqIPJRnLDs4uOsh0KCZ0KCZ0KCZ0KCZ0KCa8VUzv
TnLKRLUMM1rmOkHQwjQYNslg2CgdIiTt/lukppeVPW11lLt7R6a8qfhrhg2F5p0W
Rr+0bYbd3dGpod8rTObzKsuSjVtMJ0WIr60cuMP23ypghpo5tYrGXg7OF8Fj8RUs
LJF/gNAP8tTtqWmA3WpHY5F8BW3N5gitnLvNNGXHjcKY4CCDgobBvN3EmUnneAxO
GNKPoBCwg3N0VVAD57DzHBVcsHqn0s2l18uAfBNha4OoW9Sm3m250KHM9npm135W
jX4WD0oMtj9bxrvz7qnUU6mk54EZLJGq97MfcQPGsUpVtbc7vZu0+P73lowe/wNO
U5Zdquuq88ZvXZqDz+Gg5LwqigR78V0Z4t+ES4eKSkbL8STKZgZjezKdzRfL1c2v
9w+/PX4atOze8TwpYsqmOXamSuVSnT0mF6DDM6HTc1Xp8gSPqh5Y5+RmHeXG3eTs
RUe5STc5dIwLOsYFOi6rd4gZmIrnPE2lLO6Hol7wZwpDl2ujzImXWgBzAHSd91PD
ZIirVUcZPUvnQAbVlyfo7k5CxUVcF6Btmw2r22y/R1weHfX91XwbriCyb/DfqomW
9lmgSjfdhcsT4iicpOBf2pR0QncPOc/WKAbHej1qKi6cwhnUvohOLqLTi+jsIjq/
iC4uossCzUnnfAZFeCaDQ2YjzVqaO/UOkeOssY6x2ZiWuyPki1WOv7ZbFYO0ISeQ
U+q7lBBQ9qTysJd18KXSp25J9Lyjj1ef7jU7AU8QJb64ifD6WYcp2de3KjWkw3+T
Dy0rXduycpUNx5ZVdsEuL6S31WJWgSc1WPWiEjytwURjZXhWg1cVdF5Dq5YXNTQ3
nPLHOP3MUlQSzdJURO9COrefw/P5zAopxfL41lOef6t6043QvOt5+q6n+2fpvT7D
9h6D++JlPkBmasjOUwuuWypWWVw3/71AbBhTk5Xiuv8fdZ8WR30QAAA=
----END BASE64----


233 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/30 21:00]
>>232
いやー、かなり早くなったね。

234 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/30 22:55]
>>232
すごいすごい。

せっかくなので、アドレス部の表示をファイル位置にできたりしませんか?
(insert-file-contentsでBEG ENDを指定した場合など)


235 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/30 23:34]
ヽ(`Д´)ノ cclってナンダヨー

236 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/31 11:55]
>>235
code convetion lang

237 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/31 15:49]
16bit,32bit,64bit,128bit単位の表示、および
ビッグ・エンディアン、リトル・エンディアンの切り替え
もできれば、言うこと無しだが・・・

238 名前:名無しさん@お腹いっぱい。 mailto:sage [04/06/03 17:13]
(defun bdccl-write-8bit (reg terminator bit)
(let ((x (+ bit 8)) (r (list `(write ,terminator))))
(while (< bit x)
(setq r (cons `(if (,reg & ,(lsh 1 bit)) (write ?1) (write ?0)) r))
(setq bit (+ bit 1)))
r))

(defun bdccl-write-hibit (reg terminator)
(bdccl-write-8bit reg terminator 8))

(defun bdccl-write-lobit (reg terminator)
(bdccl-write-8bit reg terminator 0))

239 名前:名無しさん@お腹いっぱい。 [04/06/09 23:51]
すいません初歩的質問なんですが、リファレンスマニュアルを最終的にPDF化したいのですが、
ftp://ftp.ascii.co.jp/pub/GNU/elisp-manual-20/elisp-manual-20-2.5-jp.tgz
これを展開して、README.jisを読んだんですが、elisp.dviの作成手順で
GNU Emacs Lisp Reference Manual のソースツリーのファイルtexinfo.texが
どこにあるのだか分かりません。どこにあるんでしょうか?





240 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/02 17:30]
>>239
texinfo のソースツリーに入ってます。
ttp://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/doc/

ところで、bookshelf.jp にある私的日本語化プロジェクトは
texinfo 形式のソースがあるのかな?

241 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/02 21:33]
>>240
texinfo でやってますので,ソースはありますけど,公開はしてません.


242 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/02 21:42]
では公開していただけますか?

243 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/03 09:21]
>>241
あ、texinfoのやつがあると僕もうれしい。支障なかったら公開きぼんぬです。

244 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/03 09:45]
>> 242,243
支障ないので,そのうちに公開しておきます.
少しお待ちを

245 名前:名無しさん@お腹いっぱい。 [04/07/13 23:34]
>>232
(defun bdccl-write-hibit (reg terminator)
`((if (,reg & ,(lsh 1 15)) (write ?1) (write ?0))
(if (,reg & ,(lsh 1 14)) (write ?1) (write ?0))
(if (,reg & ,(lsh 1 13)) (write ?1) (write ?0))
...

(lsh 1 15) これを下のように定数にしないのは
マクロ展開されるて、実行時には関係なくなるから?

(defun bdccl-write-hibit (reg terminator)
`((if (,reg & 32768) (write ?1) (write ?0))
(if (,reg & 16384)) (write ?1) (write ?0))



246 名前:名無しさん@お腹いっぱい。 [04/07/13 23:37]
>>232
と同じような Hex dump ってあるのかな? そっちの方が僕は使うな。
binary にしてどんな時に便利か教えてくれ。

247 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/11 23:45]
ほしゅ。


248 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/15 01:57]
つか、ほしゅしなくても落ちないのでは?

249 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/07 11:11]
連番を作るのに、こんなのを作ってるんだけど、
うまく動かない。 どこが悪いのかな…。

(do ((i 1)) ((> i 10))
(insert (format "Sequence%d\n" i))
(setq i (1+ i)))




250 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/07 11:43]
あなたは elisper ではありませんね?

251 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/07 14:16]
先生!
このマンコ関数はどうでしょう?
(defun manko(i)
(cond ((> i 0) (insert (format "Sequence%d\n" i)) (manko (- i 1)))
(t nil)))
(manko 10)

252 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/07 23:36]
number-sequence

253 名前:249 mailto:sage [04/09/08 11:31]
>>251

ありがとう。
でも、こういわれてしまう…。

Debugger entered--Lisp error: (void-function manko)
(manko 10)
eval((manko 10))
eval-last-sexp-1(nil)
eval-last-sexp(nil)
* call-interactively(eval-last-sexp)
recursive-edit()
byte-code("堰ニ!秩ー∨ 秩ー¬!秩ッ⊃n?


254 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/09 21:01]
(do ((i 1 (1+ i)) ((> i 10))
(insert (format "Sequence%d\n" i)))

255 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/09 22:02]
ちゃんと書きなよ。
しかし do なんか使わなくても。

256 名前:249 mailto:sage [04/09/09 22:37]
>>254

環境が悪いのでしょうか。

Debugger entered--Lisp error: (invalid-function (i 1 (1+ i)))
((i 1 (1+ i)) ((> i 10)) (insert (format "Sequence%d\n" i)))
eval(((i 1 (1+ i)) ((> i 10)) (insert (format "Sequence%d\n" i))))
eval-last-sexp-1(nil)
eval-last-sexp(nil)
* call-interactively(eval-last-sexp)


257 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/09 23:43]
>>249
そもそも「うまく動」いたらどうなるんだ?
期待してる結果が書いてない。

258 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 01:03]
(require 'cl)

(do ((i 1 (1+ i))) ((> i 10))
(insert (format "Sequence%d\n" i)))

259 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 09:17]
なんか覚えにくい構文だな。
まだloopのほうが、という気がした。



260 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 10:12]
eldocでミニバッファに出るから覚えなくても書ける。
でも普通はdotimesなんかを使うとは思うんだが。


261 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 11:14]
エコーエリア

262 名前:249 mailto:sage [04/09/10 17:28:00]
>>258

ありがとう!!

(require 'cl)

これが不足でした。

(do ((i 1 (1+ i))) ((> i 10))
(insert (format "Sequence%d\n" i)))

(do ((i 1)) ((> i 10))
(insert (format "Sequence%d\n" i))
(setq i (1+ i)))

どちらでも動きました。


しかし。
doなんてとか、loopのほうが、っていうなら、
サンプルを掲示してみてはどうでしょう。
言い合いをしているだけでは何にもならないじゃないですか。


263 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 17:48:24]
「してくれないでしょうか?」の間違いではなくて?
個人的には、何故doでやってみようとしたかに興味が少しある。

264 名前:260 mailto:sage [04/09/10 18:49:50]
>>262
調べろよ、それくらい。
見て猿真似できるサンプルが出てこないと何も出来ない池沼なのかよ。
キーワードが出てくるだけで十分だろ。
# cl-macsにloopがあるとは知らんかった

そもそも「言い合い」になるほど骨のある内容じゃなかったし。


265 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 19:05:04]
池沼というのは、マンコ関数でひっかかってる時点で明らか。>>253

266 名前:260 mailto:sage [04/09/10 19:15:10]
言われてみればその通りだった。orz


267 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/12 01:45:39]
(let ((i 0))
(while (< i 10)
.....
))
とかの方が分かりやすくて好きなんだけどな

268 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/12 04:07:53]
viperで、vimの"*"コマンドを実装した。

(define-key viper-vi-global-user-map "*" 'viper-exec-word-search-nearest-cursor)
(define-key viper-vi-global-user-map "#" '(lambda () (interactive) (viper-exec-word-search-nearest-cursor t)))
(define-key viper-vi-global-user-map "g*" '(lambda () (interactive) (viper-exec-word-search-nearest-cursor nil t)))
(define-key viper-vi-global-user-map "g#" '(lambda () (interactive) (viper-exec-word-search-nearest-cursor t t)))
(defun viper-exec-word-search-nearest-cursor (&optional reverse unbound)
"Emulate vim \"*\" command."
(interactive)
(let ((word (viper-surrounding-word 1 1)))
(when (stringp word)
(setq viper-s-string (if unbound word (concat "\\<" word "\\>")))
(setq viper-s-forward (not reverse))
(setq viper-search-history (cons viper-s-string viper-search-history))
(setq viper-intermediate-command 'viper-exec-word-search-nearest-cursor)
(viper-search viper-s-string viper-s-forward 1))))


269 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/12 09:49:16]
>>268
おーなかなかいいすね。使わせてもらいまっさ。
でも g + hogehoge は viper 流の (viper-buffer-search-enable) の方が好き :-)

;; しかし viper 異様に重いよなあ…。ボクのマシンがボロなだけ?(´・ω・`)



270 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/12 14:11:08]
再帰好きなelisperの人は
max-lisp-eval-depth と max-specpdl-size に
どのくらいの値を設定してるの?



271 名前:268 mailto:sage [04/09/18 10:06:39]
www.vim.orgで公開されているscriptで定番のやつの実装。
;;; alternate files quickly
(defvar a-extension-map
'(("c" . "h") ("cc" . "h") ("h" . ("c" "cc")) ("emacs" . "viper") ("viper" . "emacs"))
"The corresponding associative list of extensions.")
(defun alternate-files-quickly ()
"A few of quick commands to swtich between source files and header files quickly."
(interactive)
(if buffer-file-name
(let ((ext (file-name-extension buffer-file-name))
(base (file-name-sans-extension (file-name-nondirectory buffer-file-name)))
data a_ext a_file)
(when (and ext base (< 0 (length ext)))
(setq data (cdr (assoc ext a-extension-map)))
(cond ((stringp data)
(setq a_ext data)
(when (< 0 (length a_ext))
(setq a_file (concat base "." a_ext))
(when (file-exists-p a_file)
(find-file a_file))))
((listp data)
(catch 'break
(while data
(setq a_ext (car data))
(when (and (stringp a_ext) (< 0 (length a_ext)))
(setq a_file (concat base "." a_ext))
(when (file-exists-p a_file)
(find-file a_file)
(throw 'break t)))
(setq data (cdr data))))))))))


272 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/20 17:14:26]
;;; filecache の対象を load-path にすると、
;;; .el 以外のファイルもついてきて面倒なので以外を消す
;;; 必要なのはあとで追加する

(defun file-cache-not-el-list ()
(let (nelist)
(dolist (list file-cache-alist)
(catch 'quit
(unless (string-match "^.*\\.el\\'" (car list))
(setq nelist (cons (car list) nelist))
(throw 'quit nil))))
nelist))
(file-cache-add-directory-list load-path)
(file-cache-delete-file-list (file-cache-not-el-list))
(file-cache-add-file-list '("~/.emacs" "~/.skk" "~/.wl" "~/.folders" "~/.bashrc"))


273 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/20 17:58:29]
cach - throw は何のため?

(defun file-cache-not-el-list ()
(delq nil (mapcar (lambda (list)
(unless (string-match "\\.el\\'" (car list))
(car list)))
file-cache-alist)))

274 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/20 18:05:39]
>>273
叩かれて強くなるためです
勉強になりました


275 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 22:51:00]
30 分ほど考えたり調べたりしましたが,わからなかったので質問させてください.

(list (list '("A" . "1") '("B" . "2"))
(list '("C" . "3"))
(list '("D" . "4") '("E" . "5")))



(list '("A" . "1")
'("B" . "2")
'("C" . "3")
'("D" . "4")
'("E" . "5"))


のように展開(?)するにはどうしたら良いのでしょうか?

276 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 23:02:53]
何をどう調べたり考えたりしたのか書いた方がいいと思うよ。
これこれを試してみたとか。

ヒントとしては、
mapc + append


277 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 23:07:21]
宿題なのかなー?

278 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 23:09:05]
展開後(?)の表記のしかたが悪い。
それを評価した結果になってほしいのか、まさにそれが欲しいのか。

279 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 23:14:48]
>>275
(apply #'append
(list (list '("A" . "1") '("B" . "2"))
(list '("C" . "3"))
(list '("D" . "4") '("E" . "5"))))




280 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 23:16:21]
>>275
pc5.2ch.net/test/read.cgi/unix/1083394705/405
これ書いたやつだろ。

>>276
mapcは違うと思うぞ。


281 名前:276 mailto:sage [04/10/24 23:17:46]
>>280
applyが思い浮かばなかったのさ……


282 名前:275 mailto:sage [04/10/24 23:43:20]
素早いレスありがとうございます.うまくいきました.

> 何をどう調べたり考えたりしたのか書いた方がいいと思うよ。
> これこれを試してみたとか。

GNU Emacs Lisp Reference Manual のリスト関連をあさっていました.

> 宿題なのかなー?
趣味です.

> 展開後(?)の表記のしかたが悪い。
> それを評価した結果になってほしいのか、まさにそれが欲しいのか。
おっしゃるとおりですね.勉強不足でした.

>>279
> (apply #'append
すみません,この「#'」はリファレンスマニュアルのどの辺をみれば良いのでしょうか?
ポインタだけでも教えて頂けるとありがたいです.

> pc5.2ch.net/test/read.cgi/unix/1083394705/405
> これ書いたやつだろ。
そうです.何か問題ありましたでしょうか?

283 名前:276 mailto:sage [04/10/24 23:59:29]
>>282
#'はemacs lispではほとんど'と一緒。関数にのみ使うと思っておいて。
refrence manualだけじゃなくてemacs-lisp-intro は読んだ?


284 名前:275 mailto:sage [04/10/25 00:01:12]
>> 283
まだ読んでません.どうも基礎がわかってないみたいなので,まずは
そちらから読んでみます.お世話になりました.

285 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 12:28:51]
(defun my-w3m-view-url-with-external-browser ()
"emacs-w3mから外部ブラウザを起動する"
(interactive)
(let ((url (or (w3m-anchor)
(ffap-url-at-point)
w3m-current-url)))
(message "Browsing <%s>..." url)
(start-process "external-browser"
nil
"C:/Program Files/Mozilla Firefox/firefox.exe"
url)))

FireFoxを閉じないと、↓こんなメッセージが出てEmacsも閉じられない・・・

Active processes exist; kill them and exit anyway? (y or n)

どなたかアドバイスをお願いします。



286 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 12:45:52]
>>285
unix なら PROGRAM に & を付ければ? って話なんだろうけど。
firefox.exe のオプションか別コマンドで「firefox に url を渡してする終
了する」ってなことができるんじゃないの?

287 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 13:27:30]
process-kill-without-query じゃない?

288 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 14:01:40]
ごもっとも orz

289 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 14:19:05]
Emacs 終了時に Firefox も終了したいわけじゃないんだよね。
プロセスをバックグラウンドで動かしっぱなしにするには、
BUFFER 引数を 0 にして call-process を
(call-process "C:/Program Files/Mozilla Firefox/firefox.exe" nil 0 nil url)
こんな感じで呼び出してやればいい。



290 名前:289 mailto:sage [04/11/09 14:21:42]
う、navi2ch のデフォルトフィルタにひっかかった。
>>289
( call-process "C:/Program Files/Mozilla Firefox/firefox.exe" nil 0 nil url)

291 名前:285 mailto:sage [04/11/09 14:57:44]
レスありがとうございます。

>>286
firefoxのオプションを調べてみたんですが、適切なものが見つかりませんでした。

>>287
説明が足りなかったようで、すいません。
僕がやりたかったのは、emacsから起動したfirefoxは閉じずに
emacsだけを終了するというものです。
process-kill-without-queryを使ったら、問い合わせなしにfirefoxも
終了されてしまったので、どうやら僕がやりたいこととは違ったようです。

>>290
おおっ、うまくいきました。
ちなみにコードは以下のように変更しました。

(defun my-w3m-view-url-with-external-browser ()
"emacs-w3mから外部ブラウザを起動する"
(interactive)
(let ((url (or (w3m-anchor)
(ffap-url-at-point)
w3m-current-url)))
(message "Browsing <%s>..." url)
( call-process "C:/Program Files/Mozilla Firefox/firefox.exe" nil 0 nil url)))

どうもありがとうございました。

292 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 23:32:45]
>>290
start-process と call-process の第3引数を0にするのってそんな違いがあっ
たのか。今までどっちにするか気分で決めてた…(´Д`)

293 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/13 13:00:32]
8進数を10進数に変換する関数とかあったりする?
自前でゴリゴリやるしかないスか?
逆は format でできるんだけど…。

294 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/13 13:08:06]
>>293
(string-to-number (number-to-string 10) 8)
=> 8
(string-to-number (number-to-string 20) 8)
=> 16


295 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/13 14:43:54]
>>294
がーん、string-to-number って基数を指定できるのか、知らなかった。
ありがとう。

296 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/21 21:51:33]
(let ((y 1.2))
(while (>= y -1.2)
(let ((x -2.0))
(while (<= x 1.0)
(let ((zx x) (zy y) (v 126))
(while (and (< (+ (* zx zx) (* zy zy)) 4.0) (> v 32))
(let ((temp (+ (* 2 zx zy) y)))
(setq zx (+ (* zx zx) (- (* zy zy)) x))
(setq zy temp))
(setq v (- v 1)))
(insert v))
(setq x (+ x 0.04))))
(insert "\n")
(setq y (- y 0.1))))

297 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/27 21:42:29]
call-process を呼ぶ時って apply 使って呼んでるコードが多いんだけど、ど
うしてなの?
引数をリストで渡せるから? とか思ったんだけどそうでない場合でも apply
使ってることあるしなあ。なぜざんしょ?

298 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/28 13:55:08]
元々は直接呼んでたのが、何らかの必要があって apply を使うようになり、
その後の変更で apply である必要が無くなったんじゃないの?

299 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/04 07:28:21]
(pol2str "5X^2-3") >>> ((5 2) (-3 0))

入力がSTRINGで出力をリスト形式で出すようなpol2strを定義したいんですけど、
どうかいたらいいかわかります?
反対の作業はなんとなくできたんだけどこれはわからなかったです。




300 名前:297 mailto:sage [04/12/04 08:42:10]
>>298
遅くなったけどサンクス。そんな経緯があったのか。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<277KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef