のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,597,323人
昨日:no data人
今日:
最近の注目
人気の最安値情報

元スレEmacs Part 43

emacs覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

501 = :

>>499
おいどんも、コードを貼ってくれることを
希望するでごわす。

502 = :

>>499
高校二年女子です。
わたしからもお願いします。

503 = :

しかたないにゃあ・・・

504 = :

gccのバージョンによって設定を場合分けしたくてこのように書いたんですが
全て"4"と出力されてしまいます
どこが間違っているのでしょうか

(setq debian-x86-64 "")
(setq ubuntu-x86-64 "")
(setq g++ver (shell-command-to-string "g++ -v"))

(defun case-test (value)
(case value
(debian-x86-64 "1")
(ubuntu-x84-64 "2")
(g++ver "3")
(t "4")))

(message (case-test debian-x86-64))
(message (case-test (shell-command-to-string "g++ -v")))
(message (case-test "sklfj"))

505 = :

caseを使ってるとこが

506 = :

ミニバッファまわりのキーバインドってなんでああも治外法権状態なん?
「お前のglobal-mapなんぞ知るかボケェ!」な奴多すぎだろ

507 = :

>>504
高校二年女子です。

まずは、case-test関数をedebug-defunして、ご自分のされていることを確認されたほうがよろしいかと思います。
それと、'g++ -v'そのままではなく、regexで引っ掛ける等しないと、このままではどうしようもないかと。

509 = :

>>507
501のエセ薩摩人です。

499氏がコードを貼り付けなかったら
おいどんと付き合ってください。

510 = :

>>504
>>505が言っているようにcondを使えばよろし
そういう形で分岐したいならこうかな

(defmacro cond-case (value &rest body)
(lexical-let* ((cand (gensym))
(result (gensym)))
`(loop for (cand result) in (quote ,body)
do (when (and (symbolp cand)
(or (equal (symbol-value cand) ,value)
(equal (symbol-value cand) t)))
(return result)))))

(defun case-test2 (value)
(cond-case value
(debian-x86-64 "1")
(ubuntu-x86-64 "2")
(g++ver "3")
(t "4")))

(message (case-test2 debian-x86-64))
(message (case-test2 (shell-command-to-string "g++ -v")))
(message (case-test2 "sklfj"))

511 = :

>>509
47歳男子です。
ありがとうございます。今後ともどうぞよろしくお願い致します。

512 = :

>>510
マクロのパワーを見せつけられました。

中2女子の私がこのような達人級のコードを書けるようになるには、何をすればよろしいのでしょうか?
まず服を脱ぐのは無しの方向で、お願いします。

513 = :

まずスク水を着ます

514 = :

服は着たままスク水着るのか

516 = :

512に emacs
のヘルプのここを見ろというレスは付かないのかな?

517 = :

>>512

Emacs というより、まずはこんなのかな。

http://www.aoky.net/articles/paul_graham/int.htm

519 = :

Webカメラがクラックされると簡易的な地獄が顕現しそうなスレだ

521 = :

>>520
わーいありがとう!
姉も喜んでます

522 = :

>>520
わーいありがとう!
おいどんのチン●も喜んでます

523 = :

エセ薩摩人さん、ついにコテハン化w

525 = :

>>522 でなくて >>520 だったよw
>>520->>522 で笑って、手元が狂ってしまったよw

526 = :

>>520
おおきに

527 = :

>>504
>>510はおかしいところがいくつかあったので修正するよ ついでにもうちょっと汎用的にしてみた
(require 'cl)
;;http://www.gigamonkeys.com/book/macros-defining-your-own.html
(defmacro with-gensyms (names &rest body)
`(let ,(loop for n in names collect `(,n (gensym)))
,@body))

(defmacro cond-case (value &rest body)
(with-gensyms (cand result x)
`(loop for (cand result) in (quote ,body)
when (symbolp cand) for x = (symbol-value cand)
else for x = cand
when (member x `(,value t))
return result)))

(defun case-test2 (value)
(cond-case value
(123 "aaa")
("hoge" "bbb")
(debian-x86-64 "1")
(ubuntu-x86-64 "2")
(g++ver "3")
(t "4")))

(message (case-test2 123))
(message (case-test2 "hoge"))
(message (case-test2 debian-x86-64))
(message (case-test2 (shell-command-to-string "g++ -v")))
(message (case-test2 "sklfj"))

>>512 defmacroはon lispが、loopマクロはland of lispがわかりやすいよ emacs lispレファレンスだけだど慣れるまで時間がかかるかも

528 = :

loop の中身がLISPに見えない件w

529 = :

>>528
Boost Spirit も似ている気がする。
言語仕様を上手く使って別言語の世界を作り出している。

Loop言語はマスターするとElispが非常に短くかけるし、
マクロなんでバイトコンパイルすれば速度処理もない。

532 = :

loop 好きだけどアンチも多いらしい

533 = :

デバッグが必要になった場合の手間考えると、展開結果が複雑になるようなマ
クロは使わない方が得策だと思う。

534 = :

そのマクロが正しく動くことが保証されてたら大丈夫じゃない?

535 = :

Emacs でマクロ否定って Emacs を否定してるようなもんじゃん。
Editor MACroS なめんなよ。

536 = :

elispのloopマクロで面白いものがあれば知りたい

537 = :

>>535
マクロ違い

538 = :

これの6章にediting macrosについて書いてある
http://haleakala-avenue.style.coocan.jp/lealea/

541 = :

http://orgmode.org/worg/exporters/ox-overview.html
ここにあるox-texinfoを使って.org->.texiに、
さらにtexi2htmlで.texi->.htmlに変換したら
元の.orgで#+authorで設定していたその設定が失われてしまうようで
This document was generated by *PC-name\user-name* on October 1, 2013 using texi2html 1.82
となってしまいます
.org->.htmlであれば問題なくauthor情報が引き継がれているのですが、どうすれば引き継げるのでしょうか

orgファイルはこう書いています
#+TITLE: Org-mode test
#+AUTHOR: test-name

* hello

- world

542 = :

>>541
> This document was generated by *PC-name\user-name* on October 1, 2013 using texi2html 1.82

それで正しいのだと思うが

543 = :

>>538
こんなのがあったとは。
RMS信者の私はただいま絶賛感動中です。

544 = :

>>504
なんだかすごいことになっているような気もするが
君がやりたいことへの最短距離は cond を使うことだと思うぞ

545 = :

サルでも完全理解loopマクロ講座を誰か書いてくれ

546 = :

case に関連して、

http://wisdom.sakura.ne.jp/programming/lisp/clisp11.html

ここの最後、

「記号を直接指定すると、記号が評価されてしまうということに注意しなけれ
ばなりません。そのため、リストに記号を指定するか、quote や ' によって明
示的に記号型の値そのものを与えなければならないのです。」

って本当ですか?誰か common lisp に詳しい人教えて。

547 = :

記号tやnilは直接指定すると
tはotherwiseにnilは空リストに解釈されてしまうから、
tやnilと直接比較したい場合には
クォートするかリストにいれる必要があるよって意味じゃないの?
tやnilじゃなければシンボルは評価されないと思うけどね

548 = :

>>545
Common Lisp loop でぐぐればいろいろある

549 = :

まったく、いつになったらEmacsは縦書に対応してくれるのか!
Emacs18 の頃から待ってるのに。ぷんぷん!

550 = :

縦書きelispってあったような。


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について