- 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 ではひとつ、コード中心の熱いバトルをよろぴく。
- 427 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/16(土) 20:35:55 ]
- 引数で与えたローマ字文字列を、平仮名に変換してくれる関数ありませんか?
- 428 名前:Zeno ◆5nZQbNmQPs [2005/04/16(土) 20:39:49 ]
- Reply-to:>>427
> 引数で与えたローマ字文字列を、平仮名に変換してくれる関数ありませんか? そんなのあるもなにも、自分で簡単に書けるだろうが。 ____________ If T is consistent, T !|- G_T. If T is ω-consistent, T !|- ¬G_T.
- 429 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/17(日) 09:38:00 ]
- >>427
kakasi 使っていいなら kakasi.el とか skk-kakasi.el とかを参考にすると か。
- 430 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/17(日) 17:45:37 ]
- 読み込んだら文字化け!
何とかして!!
- 431 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/17(日) 17:48:49 ]
- 線香と水で供養する!
- 432 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/17(日) 23:03:48 ]
- 見るんじゃない 感じるんだ
そのうち文字化けでも読めるようになる
- 433 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/17(日) 23:44:43 ]
- なにその Rogue like
- 434 名前:Zeno ◆5nZQbNmQPs [2005/04/18(月) 12:23:06 ]
- Reply-to:>>427
> 引数で与えたローマ字文字列を、平仮名に変換してくれる関数ありませんか? pt を 0 で始める。 pt を相対として、 substring で引数の文字列の `one-char'、`two-char'、`three-char' をゲットする。 s は empty string として初期化。 (setq s (concat s (cond ((string= one-char "a" ) "あ") ((string= one-char "i" ) "い") ... ((string= two-char "ka" ) "か") ... ))) んで、 pt を動かす。 上の作業を繰りかえせ。 Elisp 道場なんだから、後は自分で組み立てろバカ。 ____________ If T is consistent, T !|- G_T. If T is ω-consistent, T !|- ¬G_T.
- 435 名前:.Zeno ◆5nZQbNmQPs [2005/04/18(月) 12:24:07 ]
- Reply-to:>>427
> 引数で与えたローマ字文字列を、平仮名に変換してくれる関数ありませんか? pt を 0 で始める。 pt を相対として、 substring で引数の文字列の `one-char'、`two-char'、`three-char' をゲットする。 s は empty string として初期化。 (setq s (concat s (cond ((string= one-char "a" ) "あ") ((string= one-char "i" ) "い") ... ((string= two-char "ka" ) "か") ... ))) んで、 pt を動かす。 上の作業を繰りかえせ。 Elisp 道場なんだから、後は自分で組み立てろバカ。
- 436 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 12:48:24 ]
- 二日考えた結果がそれか
- 437 名前:名無しさん@お腹いっぱい。 [2005/04/18(月) 13:13:37 ]
- うん。何でそう書くのかって感じだな。
- 438 名前:Zeno ◆5nZQbNmQPs [2005/04/18(月) 13:54:18 ]
- Reply-to:>>436
別に考えていない。 Reply-to:>>437 相手が初心者である故、一番直観的な実装方法を書いてやっただけだ。 実際、ストリングではなく、char 単位で比較をした方が早く処理できる。 ____________ If T is consistent, T !|- G_T. If T is ω-consistent, T !|- ¬G_T.
- 439 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 14:06:21 ]
- ふつーに書けば
(let ((r-h-alist '((a . あ) (i . い) (u . う) (e . え) (o . お) (ka . か) (ki . き) (ku . く) (ke . け) (ko . こ) (sa . さ) (si . し) (su . す) (se . せ) (so . そ)))) (defconst r-h-table (let ((table (make-hash-table :test 'eq))) (dolist (x r-h-alist) (puthash (car x) (cdr x) table)) table)) (defconst r-h-regexp (regexp-opt (mapcar (lambda (x) (symbol-name (car x))) r-h-alist)))) (defun r-h (roma) (let ((start 0) result) (while (string-match r-h-regexp roma start) (if (> (match-beginning 0) start) (push (substring roma start (match-beginning 0)) result)) (setq start (match-end 0)) (push (symbol-name (gethash (intern (match-string 0 roma)) r-h-table)) result)) (push (substring roma start) result) (apply #'concat (nreverse result)))) こんな感じだろ。cond で比較してくなんて小学生か?
- 440 名前:Zeno ◆5nZQbNmQPs [2005/04/18(月) 14:16:32 ]
- Reply-to:>>439
最適化などいくらでもできる。 その関数をプログラム中に何度も使用のであれば、早くすればよい。 さっきも言ったように「一番直観的な実装方法を書いてやっただけ」だ。 吾の君ので比較した場合、どっちが直観的かは自明である。 ____________ If T is consistent, T !|- G_T. If T is ω-consistent, T !|- ¬G_T.
- 441 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 14:31:47 ]
- ローマ字とかなの対応リスト作ったほうが直感的だよ。
- 442 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 14:32:27 ]
- 中学生じゃなかったっけ
- 443 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 14:34:59 ]
- >>440
おツムの程度がずいぶんお粗末ですねえ。
- 444 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 15:11:40 ]
- 438 が最適化されていると感じるのなら
(defconst r-h-alist '(("a" . "あ") ("i" . "い") ("u" . "う") ("e" . "え") ("o" . "お") ("ka" . "か") ("ki" . "き") ("ku" . "く") ("ke" . "け") ("ko" . "こ") ("sa" . "さ") ("si" . "し") ("su" . "す") ("se" . "せ") ("so" . "そ"))) (defconst r-h-regexp (regexp-opt (mapcar #'car r-h-alist))) (defun r-h (roma) (let ((start 0) (result "")) (while (string-match r-h-regexp roma start) (setq start (match-end 0)) (setq result (concat result (cdr (assoc (match-string 0 roma) r-h-alist))))) result)) これで理解できるかな。 ローマ字にマッチする正規表現を検索し、結果をひらがなとの対応表から引く。 one-char two-char とやらを cond でだらだら比較するよりずっと「直観的」 じゃないか。
- 445 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 15:39:00 ]
- ローマ字綴りが変でマッチしない時の処理を加えねば。
- 446 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 15:53:42 ]
- 式が違っているのに、算盤使うか電卓使うかで喧嘩されてもなあ
- 447 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 16:04:31 ]
- コードも出してこないのに、口先だけで煽られてもなあ
- 448 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 17:24:31 ]
- アンサーノーと電卓の奇屍
- 449 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 20:46:10 ]
- Zeno ◆5nZQbNmQPs やこれに類似したレスは池沼コテなので、スルー推奨
- 450 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 22:41:34 ]
- もう少しいじれば n=(ry くらい言い出すのではなかろうか。
- 451 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/23(土) 10:15:07 ]
- Zeno ◆5nZQbNmQPs (笑)
- 452 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/24(日) 17:21:08 ]
- 「em → emacs」 のabbreviation展開が定義してあるとして、
text-mode や emacs-lisp-mode などで例えば ( em の後に expand-abbrev を実行すれば展開がされるのですが、 (em の後に expand-abbrev を実行しても、emacs への展開がされません。 どうすれば、後者の場合にも展開がなされるようになりますか?
- 453 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/02(月) 22:11:39 ]
- 今日の日付2005-05-02から一日前とか二日前の日付をゲットする
うまい方法ある?なんか普通にプログラムすると、汚くなりそうなので
- 454 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/02(月) 22:49:46 ]
- current-timeにオフセット指定できたらなー。
- 455 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/02(月) 22:55:51 ]
- time-date.elのtime-addとか使ってみるとか?
- 456 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/02(月) 23:51:02 ]
- pc8.2ch.net/test/read.cgi/tech/1068467385/306-307
- 457 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/03(火) 16:57:33 ]
- float-time は?
- 458 名前:457 mailto:sage [2005/05/03(火) 16:59:41 ]
- 全然読んでなかった。キャンセルします。
- 459 名前:453 mailto:sage [2005/05/03(火) 19:00:32 ]
- >>456
サンクス。
- 460 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 18:46:12 ]
- すみません,きわめて初歩的な質問です.
setq で,関数側の名前空間に lambda 関数をセットするにはどうしたら良い のでしょうか?つまり,(defun square (x) (* x x)) と同じことを setq で やるにはどうしたら良いでしょうか? Common Lisp (というか,xyzzy Lisp)では (setq square #'(lambda (x) (* x x))) でできるのですが.
- 461 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 18:58:14 ]
- fset
- 462 名前:名無しさん@お腹いっぱい。 [2005/05/29(日) 19:00:09 ]
- ∧ ∧
(σ・∀・)σ 460 ゲッツ!! \ \ / \ ∪ ̄ ̄ ̄\)
- 463 名前:460 mailto:sage [2005/05/29(日) 19:10:01 ]
- >>461
ありがとうございます.(fset 'square (lambda (x) (* x x))) でうまく行き ました.それにしても,名前空間は本当にややこしいですね.このあたりは, Scheme が本当に楽だと思います. >>462 騙りはやめてください.私はアスキーアートを貼ったりすることに興味はあり ません.
- 464 名前:名無しさん@お腹いっぱい。 [2005/05/29(日) 19:14:17 ]
- >>460
騙りじゃないYO。 |:::|::|__ 、-'''"´ ̄ ̄`"''''-、 __|_::::|| __|::::|::|_|_ / / \ \|::::||;;;||.. ___ .___ m|::|::|::::|_/ ● ,,. .,, ● ヽ:||::::::_|__|_ | |iiii ::::||::::|;;;;;|. (__人__) |目;;‖|≡| ̄|iiii ::::||::::|旦''-、、,,,,,,______,,,,,,、、-'' 超巨大ショボーン
- 465 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 19:21:52 ]
- 関数の名前空間にlambda関数をセットするって意味わからん
- 466 名前:460 mailto:sage [2005/05/29(日) 19:22:01 ]
- 訂正です.xyzzy-Lisp で,(setq square #'(lambda (x) (* x x))) という書
き方ができると書きましたが,間違いでした.これだと変数側の名前空間にセッ トされるだけでした.ごめんなさい.しかし,xyzzy ではどう書くのだろう... fset もないみたいだし. >>464 すみませんでした.ただ,どうも私は,「番号ゲット」の人と,アスキーアー トが苦手なのです.前者は全く意義がわからないし,後者は w3m ではアスキー アートはきちんと表示されませんし.
- 467 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 19:36:39 ]
- お前の好みをここに書くことに意義はあるのか。
- 468 名前:460 mailto:sage [2005/05/29(日) 20:40:11 ]
- >>467 遅くなりました.個人的には意義があると思っております.
道端で大音量の音楽をかけている人がいたとして,そういう人に「私はその種 の行為を好まない」と伝えることには,意義があるというのと同じです. もちろん,それを聞いてその人が音楽を止めるかはその人の自由ですし,周囲 の第三者が一連の流れをどう受け取るかも,それぞれの自由です.
- 469 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 20:43:23 ]
- 道端じゃなくてライブハウスでもそうするのかな?
- 470 名前:460 mailto:sage [2005/05/29(日) 20:57:21 ]
- >>469
なるほど,良い例えですね.ライブハウスなら私はそれをしないでしょう.た だし私は,その比喩に乗っかるなら,ライブハウスには行きません. 私は UNIX 板などの専門板は道端(ないしは公共空間)と考えており,ラウン ジやニュース速報板などをライブハウスだと考えているということです(だか らその種の板には行きません). しかし,その受け取り方が正しいかはわかりません.というより,こういうも のに正しいということは存在しません.ただし,その場の第三者の支持をより 多く受ける意見のほうが選択として望ましいでしょう. 以上です.しかし,この種の意見をたくさん書くのは,明らかにこのスレにとっ て望ましくないですね.これで終わりにします.すみません.
- 471 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 21:41:54 ]
- 書いてて自己矛盾してるのに気付かないもんかね、まったく。
- 472 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:00:32 ]
- 結論: 句読点に , や . を使うやつはおかしなひとがおおい
- 473 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:02:07 ]
- この辺で雑談終わりにしないか
- 474 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:10:04 ]
- >>472
私も句読点は「,」「.」にしてるよ.日本語の論文誌では そう指定されることが多いから,私の周りでもそういう人は多い. 君はきっとそんな世界とは無縁なんだろうね.
- 475 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:18:53 ]
- texの時だけそうしてる。
- 476 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:21:42 ]
- 大学院に行くやつはたいてい就職できなかったやつ。
- 477 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:44:20 ]
- TeXの場合はその方が見栄えがいいから「, 」「. 」だけど、それとてASCIIコードの方だしなあ。
なんにせよ、場もわきまえずに関係の無いことをグダグダと垂れ流し、 挙句の果てには「私も」なーんて他人の振りして自己弁護するような池沼だということだけは分かった。
- 478 名前:460 203-179-90-199.cust.bit-drive.ne.jp mailto:sage [2005/05/29(日) 22:59:38 ]
- ID がでないので証拠はありませんが,私は>>470 を最後に書き込みはしてお
りません.私の書き込みは,fill-region で整形してありますので,句読点以 外でも見分けがつくのではないかと思います.私の批判をなさるのは皆さんの 自由ですが. (それにしても,私はよく自作自演の誤解を受けます.理由はわかりませんが, >>474さんには申し訳ありません) ただ一点だけ,>>471 の書き込みの「自己矛盾」という言葉が何を指している のか,しばらく考えましたがどうしてもわかりません.よろしかったら,矛盾 点をご指摘いただけたら幸いです.皮肉でなしに,真剣に知りたいのです. もし,お教えする価値がないと思われましたら,このレスを最後に,スレ本来 の流れに戻していただければ幸いです.
- 479 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:04:19 ]
- 460よりもこいつ↓の方が断然好ましいと思う。つか気に入った。
|:::|::|__ 、-'''"´ ̄ ̄`"''''-、 __|_::::|| __|::::|::|_|_ / / \ \|::::||;;;||.. ___ .___ m|::|::|::::|_/ ● ,,. .,, ● ヽ:||::::::_|__|_ | |iiii ::::||::::|;;;;;|. (__人__) |目;;‖|≡| ̄|iiii ::::||::::|旦''-、、,,,,,,______,,,,,,、、-'' 超巨大ショボーン
- 480 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:05:45 ]
- xyzzy-lispってなぁ…
- 481 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:24:45 ]
- >>477
> TeXの場合はその方が見栄えがいいから「, 」「. 」だけど、それとてASCIIコードの方だしなあ。 日本語の論文では,ASCIIでなくて全角の「,」「.」を指定されるんだけど. 君はほんとに何も知らないんだね.Fランク大の出身者でしょうな. > なんにせよ、場もわきまえずに関係の無いことをグダグダと垂れ流し、 > 挙句の果てには「私も」なーんて他人の振りして自己弁護するような池沼だということだけは分かった。 最早このあたりになると哀れというか見っともないというか・・・ 自作自演じゃないんだけどね.まあ,君のような頭の悪そうな人に どう思われてもかまわないけど (笑)
- 482 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:37:09 ]
- 結論: 句読点に , や . を使うやつはおかしなひとがおおい
- 483 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:42:41 ]
- >>481 は学歴しかとりえがない社会不適合者かな?
大学はこういうやつを隔離しておくところ。 ずっと入院して、永遠に退院してこないでください。:-)
- 484 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:43:59 ]
- いつまで続けんのよ。
- 485 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:44:02 ]
- >>481
これはどっちのキャラで読んだらいいのかな。 フシアナしてないから「弁護する他人」キャラ? >>479 いいよな。初めて見た。
- 486 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:44:19 ]
- :-) ←とかいう顔文字を使う奴が自分は社会に適合できてると思ってるのが笑える
- 487 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/30(月) 01:19:50 ]
- なんで山崎スレでテストしてんだ>>478は。
pc8.2ch.net/test/read.cgi/unix/1111372352/17
- 488 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/30(月) 02:22:12 ]
- >>481
日本語の論文って、あんた、Gランク大ですか? 島国根性まるだしですね。
- 489 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/30(月) 07:10:51 ]
- >>488
はあ? いま日本語の論文の話題をしてるんだろ? なんで突然英語の論文の話題になるの? ふつーは論文を英語で 書いてるよ,そんなの言うまでもないじゃん. 得意げに島国根性だってよ (苦笑).馬鹿と話すと疲れるね.
- 490 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/30(月) 07:49:04 ]
- >>489
(add-hook 'yatex-mode-hook (lambda () (require 'skk) (setq skk-kutouten-type 'en))) とでもしとけ。
- 491 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/30(月) 09:16:54 ]
- 結論: 句読点に , や . を使うやつはおかしなひとがおおい
- 492 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/31(火) 02:23:52 ]
- 日本でまともな研究しているやつっているの?
- 493 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/31(火) 16:16:20 ]
- まともな研究したいやつは皆アメリカへ行く。
- 494 名前:Zeno ◆5nZQbNmQPs [2005/06/01(水) 21:51:38 ]
-
:) ________________________________________________________ セオドア・カジンスキー 「産業社会とその未来」 (aka. マニフェスト) の抜粋 www.cnn.com/US/9509/unabomber/09-19/am/excerpt.html
- 495 名前:名無しさん@お腹いっぱい。 [2005/06/14(火) 21:04:19 ]
- M-x で呼び出せる関数書いたんですが、
それに C-u を前置しても4回連続で実行とかしてくれません ESC [任意の数字] でも同じ 複数回連続動作させたい場合は、何か特別な事をしなくちゃならないんでしょうか?
- 496 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/14(火) 21:20:07 ]
- (interactive "p")
- 497 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/14(火) 21:25:33 ]
- >>495
特別なっつーか、引数を自分のやりたいように処理してやんなきゃ。 その前置引数を見てその回数だけ繰り返すように関数を書かないと駄目っしょ。 C-u を前置すると Emacs が勝手に繰り返してる訳じゃなくって、C-u が渡さ れたら繰り返すように関数が作ってある訳で。
- 498 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/14(火) 22:11:40 ]
- >>496-497
すんません。そのようですね www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp_12.html#SEC130 今この辺見て勉強してるんですが、何故だかうまくいかねっす もう少しやってみます
- 499 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/14(火) 22:28:00 ]
- (defun hoge (n)
(interactive "p") (dotimes (i n) (insert "hoge")))
- 500 名前:498 mailto:sage [2005/06/14(火) 23:26:34 ]
- 一応解決しました
ifの使い方で躓いてただけだった perlとかCみたいに{}で複数行をひとまとめにできないんで >>499 ありがとうございます dotimesなんてものもあるんですね 関数もっと知ってれば結構書けるんじゃないかな、とか思っちゃってる俺 ネット上に結構充実したリファレンス(しかも日本語訳されてる)とかあるし、 金出さなくても勉強できそう
- 501 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/15(水) 00:46:14 ]
- emacs lisp は info のヘルプが超便利だと思うよ。
- 502 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/15(水) 01:28:29 ]
- そだね
いろんな日本語のinfoを捜して、 それ読むだけでもいいんじゃない
- 503 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/23(木) 13:33:40 ]
- lisp 以下のソースを見たらいいんじゃない?
使用したい function の使用例として。
- 504 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/25(土) 10:23:50 ]
- 文字列で与えられたシンボルを束縛したいんだけどどうやればいいでしょうか。
font-lock-mode => t (let* ((bound-str "font-lock-mode") (intern-soft bound-str)) font-lock-mode) => t これじゃ駄目だし orz
- 505 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/25(土) 10:32:34 ]
- eval すればいい
(let ((bound-str "font-lock-mode")) (eval `(let ((,(intern bound-str) nil)) font-lock-mode))) => nil よく使うならマクロに (defmacro hoge (str value &rest body) (let ((sym (intern (eval str)))) `(let ((,sym ,value)) ,@body))) (let ((bound-str "font-lock-mode")) (hoge bound-str nil font-lock-mode)) => nil
- 506 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/25(土) 11:09:42 ]
- >>505
おおー、できました。 eval すりゃいいのか…ってまだよく理解できてないけど。感謝。
- 507 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/26(日) 18:11:07 ]
- eval 必要ないみたい。
(defmacro let-string (str-value-list &rest body) `(let ,(mapcar (lambda (sval) (list (intern (car sval)) (cadr sval))) str-value-list) ,@body)) (let-string (("font-lock-mode" nil) ("test" 11)) (cons font-lock-mode test)) => (nil . 11)
- 508 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/26(日) 18:24:34 ]
- eval 無いと
(let ((bound-str "font-lock-mode")) (let-string ((bound-str nil)) ...)) みたいに使えないよね。 文字列リテラル書けるのなら最初からシンボルにすればいいんだから、 よそから持って来た文字列に値を束縛したいって話なんじゃないの?
- 509 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/26(日) 19:24:09 ]
- すみません、書いてから気付きました。
- 510 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/07(日) 01:07:26 ]
- hoge という関数が定義されているか調べるにはどのように書けばよいのでしょ
うか?
- 511 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/07(日) 01:22:09 ]
- (fboundp 'hoge)
- 512 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/17(水) 15:11:54 ]
- Linux板のAtok Wnnスレで放置されたんで作ってみた。
(defun to-hankaku () "change current word from zenkaku to hankaku" (interactive) (save-excursion (push-mark) (backward-word 1) (japanese-hankaku-region (region-beginning) (region-end)) (pop-mark))) (global-set-key "\M-n" 'to-hankaku) どなたか叩いてくだひゃい。 本当に聞きたいのはWnn7eggで半角カタカナ入力できるか否かなんだが
- 513 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/17(水) 16:07:04 ]
- 普通、関数内部の処理では mark は使わない。
mark は基本的に、ユーザーが手動で region 指定したり移動したりするためのもの。 移動コマンドなんかで、あとでユーザーが使えるように push-mark しとくとか、そういうときに使う。 普段の処理で使うのは marker のほう。 でもこの場合は、その場で region 指定するだけだから、 marker も使わないで済みそうかな。 (save-excursion (let ((end (point))) (backward-word 1) (japanese-hankaku-region (point) end))) みたいな。
- 514 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/17(水) 17:00:47 ]
- >>513
ありがとさんです。regionといっても markしなきゃいけないわけじゃないんですね。 えらくすっきりしました。 またなんかあったらよろしく
- 515 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/21(日) 20:15:39 ]
- 質問なんですが、例えば(decode-time)の結果のようなリストを
これまた例えば(sec minute hour day month)のような変数(のリスト)に 一気に代入するようなコマンドってないもんでしょうか。 Perlでいう ($sec, $minute, $day, $mon, $year) = localtime(); みたいなイメージなんですが。 あと、Emacs-Lisp Farm ていうMLがあるようですが 過去ログって見れないんでしょうか?
- 516 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/21(日) 21:07:43 ]
- 間違った使い方な気がするけど、multiple-value-setqとか?
ログはMLはいってからコマンドメール投げれば取得できるよ。
- 517 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/21(日) 21:31:55 ]
- >>515
(apply (lambda (sec minute hour day month year dow dst zone) ...) (decode-time)) とか CL 使うなら (destructuring-bind (sec minute hour day month year dow dst zone) (decode-time) ...)
- 518 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/21(日) 21:55:07 ]
- >>516,517
レスどうもっす。 (setq num '(1 2 3 4)) (multiple-value-setq (a b c d) num) みたいに簡単にできるのですね。助かります。 「間違った使い方」つうのが気になるけど、、。 (apply (lambda (sec minute hour day month year dow dst zone) (message "%d年%d月%d日%d時%d分" year month day hour minute sec) ) (decode-time)) として動くのは確認しました。が、当方未だラムダ式とかよくわかっていないので じっくり考えてみようと思います。 とりあえずapplyのドキュメントを丸のみすれば 「(decode-time)で返されたリストを引数(リスト)としたlambda式が実行された」 ということですね?
- 519 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/21(日) 23:12:02 ]
- 間違った使い方な気が……っていうのは、
elispには多値はないのにmultiple-value-*を使ってるから。
- 520 名前:Zeno ◆5nZQbNmQPs [2005/08/23(火) 11:25:55 ]
-
ユニバーサルな解釈など存在しない為 間違った使い方など存在しない _________________ If T is consistent then T !|- R_T If T is consistent then T !|- ¬R_T. -- John B. Rosser
- 521 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/23(火) 12:55:11 ]
- そういう考えだとあらゆる価値が平等に無意味になって
思考停止に陥るお。
- 522 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/23(火) 13:10:54 ]
- 思考する前に馬鹿を殺そう
- 523 名前:Zeno ◆5nZQbNmQPs [2005/08/23(火) 21:34:07 ]
- Reply-to:>>521
知っていた (る) 人の文調に似ている・・・ 君は吾がそう思っている人物か? > そういう考えだとあらゆる価値が平等に無意味になって > 思考停止に陥るお。 人間は無限近くのチョイスを全て吟味するパワーはない為、 結局はプラグマティク、若しくは他人が選んでいるチョイスを 選んでしまう。 ただ 520 は「Lisp のような自由度の高い -- 故に創造性の必要とされる -- 言語でただ一つの解釈を強要するのは間違っているのではないのか」 ということを伝えたかっただけだ。 > Reply-to:>>522 お前誰だよ _________________ If T is consistent then T !|- R_T If T is consistent then T !|- ¬R_T. -- John B. Rosser
- 524 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/23(火) 21:53:28 ]
- 520と523がみえない
- 525 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/24(水) 00:18:17 ]
- 見えないのが気になるならフィルタ使わないほうがいいよ
- 526 名前:521 mailto:sage [2005/08/24(水) 04:51:42 ]
- よくわからんがニューハーフに知り合いはいないよ。
- 527 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/24(水) 11:37:34 ]
- ゴキブリを見て見ぬふりする愚かさ
|

|