のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,875人
昨日: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一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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