Emacs Lisp 2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG少数派による互助を中心に、初心者の相談も気が向けば受け付けます。
単なる Emacs ユーザーは別板の Emacs 関連スレにどうぞ。
前スレ
Emacs Lisp
http://pc2.2ch.net/test/read.cgi/tech/1004551074/
関連スレ
Emacs part10
http://pc.2ch.net/test/read.cgi/unix/1066719492/
LISP Scheme Part8
http://pc2.2ch.net/test/read.cgi/tech/1058263391/
0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNG> 方法も考えられるね。そうすれば、わざわざelファイルを覗く
> 必要もなくなるし。いま、elcファイルだけを配るLinux
> ディストリビューションってあるよね?
昔、debianを使っていたのですが、たしか、elファイルとelcファイル
は別パッケージだったような気がします。今はどうなのだろう?
>>150
> そういや英語圏の人はプログラミング言語が英語なのをうれしいと思ってるのかね
>本などでプログラミング言語の説明をするときキーワードを一々イタリックにしたりね
厳密な定義はプログラミング言語内で規定されているのは、当然としても、
なんらかの、脳みそへの引っかかりのようなものがあるから、英語のキーワードを
使っているのではないでしょうか? ある意味では数学の+, -, などはそういう意味では
英語vs日本語という観点からは中立的といえるのかもしれません。
> 日本語は助詞が複雑だよ?
手始めに名詞レベルでの日本語化はどうだろうと思います。
また、助詞の複雑さといってもそれを利点に変えるチャンスはあるのでは?
>> 151
> (´-`).。o(…cons とか cdr とか、どうやって訳すんだろう…)
英語でもなんじゃーこりゃー!的な、もうすでに意味がとれない単語が
沢山あるのは承知しています。Cobolでの実験もしっているつもりです。
触ったことないけど。
0155デフォルトの名無しさん
NGNG空指標例外
0156デフォルトの名無しさん
NGNGはずしてみたらどうだろう?
ただ実質的に「NullPointerException」は、プログラミングの世界では「日本語」と
言ってもいい存在に「現在は」なっているということは分かります。
>NullPointerException
>空指標例外
あきらかに漢字圏の人間には「空指標例外」の方が何なのか連想しやすそうですね。
これが名前としてふさわしいという意味ではないです。もっとよさそうなのがあるでしょう。
>>152
> なんかそこはかとなく不吉な文章だな…。界面のほうが心に響くか?
バレましたか、私も界面はどうだろうと思いますが、激賞する人もいるので
書いてみました。
elisp万歳!
0157デフォルトの名無しさん
NGNG> 昔、debianを使っていたのですが、たしか、elファイルとelcファイル
> は別パッケージだったような気がします。今はどうなのだろう?
今でもそう。Emacs単にインスコしただけじゃ el は入らない。
>>156
> これが名前としてふさわしいという意味ではないです。もっとよさそうなのがあるでしょう。
略して「カラシ」とか。
0158デフォルトの名無しさん
NGNGぬるぽ
0159デフォルトの名無しさん
NGNG>>136
special form に対しても defalias出来るんだ、
と当然の事に感心してしまった。
0160デフォルトの名無しさん
NGNGそーいう圏内だったらどうなってたんだろう。
0161デフォルトの名無しさん
NGNGソースコードはハングルで書くニダ。とか?
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?as_q=lisp&num=10&hl=ja&ie=UTF-8&oe=UTF-8&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&lr=lang_ja&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=
15分の1くらい居スニダ
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG実際英語以外の言語で実用的なプログラミングは
あまり行なわれていないな。
日本語の場合は文字コードがまるで違うので別の問題があるが、
独仏のプログラマなんかはどんな感じなんだろ。
独語の関数とか、やはりキモい感じがするのかな。
0166デフォルトの名無しさん
NGNG----
情報技術者の定義
http://www.ne.jp/asahi/bdx/info/jp-cyberscope/jp-cyberscope-20010321.html
> 最近の意見交換の中から、昔から思っていることで
> ここに書いていなかったことをまとめておく。反論歓迎。
> * コンピュータ技術は本質的にアングロサクソン文化の
> 継承物であるため、基本的にその中心言語は英語となる。
0167デフォルトの名無しさん
NGNGそろそろスレ違いも飽きたので、これ以上やるならどこかにスレ立ててやってくれ。
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGス レ 違 い は 他 板 へ
関連リンク: http://life.2ch.net/
0170デフォルトの名無しさん
NGNGC-u 後ろ
C-m 前
なんてキーバインドだったら絶対にemacsなんて使わないからな。
0171デフォルトの名無しさん
NGNGキーの並び的に C-b, C-f より自然に見えるけどな
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNGそれは Emacs や readline がそうなっているのに慣れたからだと
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG知らないけれど他にどんなのがあるの?
0177デフォルトの名無しさん
NGNGTECOもそうかも。
0178デフォルトの名無しさん
NGNGOk
0179名無しさん@Emacs
NGNG0180デフォルトの名無しさん
NGNGEmacsのキーバインドだってそれにそったものだよね。
だから何らかの形の日本語化が行われるとしても、規格にそむいた独自路線を
走ることはないでしょう。
0181デフォルトの名無しさん
NGNGそういや UNIX 系 OS では改行が ^M って表示されるな
Windows 上の C-M はそれに追随したものだと思っていたのだが
ISO 規格だったのか…
ところで Emacs は ^H をヘルプにして潰してるけど何でよ?
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNGここにいるやつの程度が知れるな。
0185デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/prog/1069868102/
このスレと勘違いして煽り入れて書いてしまった。スマソw
0186デフォルトの名無しさん
NGNG画面出力の改行のことではなくキー入力の改行の話
0187デフォルトの名無しさん
NGNGくらいの互換性は確保しているの?
RMSもなんだか、現行のEmacs Lispを大幅に変更する気が本当にあるのかなという
気がする。だいたいschemeに変更したからって得られるものは何よ?
現在のEmacs Lispを若干補正するくらいで、どうにかなるのじゃないの?
とりあえず、packageの導入。Lexical scoping あたりかな?
0188デフォルトの名無しさん
NGNGCommon Lisp君を見習ってしまった方がよいと思います。もう遅いのでつか?
0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGFrom: Richard Stallman
> Guile is the standard extensibility package of the GNU Project, All
> GNU packages that include an interpreter for extensibility are
> supposed to use Guile. It is inconsistent for Emacs not to support
> Guile.
>
> It would not make sense to replace Guile with Emacs Lisp in everything
> else.
つまり、将来的に Guile をサポートする *ことになっている* のは技術的理
由からではないのです。
0191デフォルトの名無しさん
NGNGというguile-emacsの進化とは別問題として、Emacs Lispの進化は続くでしょうね...
とりあえず、packageシステム入れろ矢ゴラッァ! 互換性とるのなんか簡単だろ!
パッケージ書くのが苦痛なんだよ!
あっ、俺がやればいいのか...
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNG否定できないので、難しい。
0196デフォルトの名無しさん
NGNG> だれがRMSを説得するかという問題。
竹内郁雄先生になんて、お願いできないの? お友達同士でしょ?
0197デフォルトの名無しさん
NGNGどういう仕掛けなん?
0198デフォルトの名無しさん
NGNGWho Wrote にも RMS は入ってないし。
0199デフォルトの名無しさん
NGNG0200ヽ(´ー`)ノ
NGNGするんだけど、どないしても探せないのですよ。誰か知らね?
0201デフォルトの名無しさん
NGNGwith-temp-buffer の事じゃないよね?
0202ヽ(´ー`)ノ
NGNGレスどもー。
キー入力があると *Completions* とかを閉じてくれるものなんで、
with-temp-buffer では無いと思われ。
momentary-string-display の temp-buffer 版っぽいようなことを
hook でやってくれるようなモノだったと記憶してるんだけども、
記憶が曖昧で(;´Д`)。
頑張って自分で作ってみます。
0203デフォルトの名無しさん
NGNGhttp://www.geocities.co.jp/SiliconValley-Oakland/7673/
ここの lcomp.el は?
自分は自作コード使ってるけど(ヘボいが自作なので)。
0205デフォルトの名無しさん
NGNGバイトコードの定義って"(elisp)Disassembly"で少し紹介されているだけで、
正確な定義ってbytecomp.elを読むしかないのかな?
GNU Emacs と XEmacs で非互換のバイトコードもあるよね?
0206デフォルトの名無しさん
NGNGまあコンパイラよりは先にVMの実装読んだ方が早いよ。
0207デフォルトの名無しさん
NGNG>まあコンパイラよりは先にVMの実装読んだ方が早いよ。
src/bytecode.cをすこし読んでみたんだけど、これが2千行以下で
このくらいなら遊びで自作VMを乗っけてみるのもオツかなと
思いました。いやドラゴンブックを読んでいるもんで。
バイトコンパラは何か改良の余地はあるのでしょうか?
目標があったほうが弄りがいもあるでしょう?
0208デフォルトの名無しさん
NGNG動かせる様にしたりすると大勢の人間に喜ばれるかもね。
コンパイラの改造としてはレキシカルスコープにしてみたりとか。
RMSは怒るかもしれないケドさ。
関係ねえもんな。
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG> あのVMはいくらでも改良できるから、適当なCPU上でJITで
> 動かせる様にしたりすると大勢の人間に喜ばれるかもね。
ドラゴンブックの範囲を超えるな...だから面白いのか...
> コンパイラの改造としてはレキシカルスコープにしてみたりとか。
これは、lexical-letがclにあるからハックバリューが低いような。
> RMSは怒るかもしれないケドさ。
> 関係ねえもんな。
わらた。
0211デフォルトの名無しさん
NGNG簡単にできると思ってやってみようと思ったけど、read, load, などCで
書かれたprimitive群は、Cで書かれたinternを直接呼んでいるようなので、ダメですね...
elisp: (intern name &optional obarray) => symbol
common-lisp: (intern name &optional package) => symbol, status
と引数までそろっているのに...残念。
0212デフォルトの名無しさん
NGNGhttp://www.nocrew.org/cgi-bin/cvsweb/cvsweb.cgi/emacs-cl/cl-packages.el
0213デフォルトの名無しさん
NGNGVobarrayをコピって差し換えればいけるかも。
面倒だけど。
(let* ((obarray (make-obarray てきとー)))
(read ...)
(exportするシンボルをVobarrayに書き書き))
みたいな?
0214デフォルトの名無しさん
NGNG「ドラゴンブック」って何でしょうか? ググってみても「富士見ドラゴンブック」
くらいしか出てきません。あきらかに無関係ですよね、コレは。
0215214
NGNGttp://www.amazon.co.jp/exec/obidos/ASIN/4781905854/
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG大学のPCでemacsを使っていると、「#include」や「int」とか「printf」とか打つと文字色が変わるのですが、
自分の家のvine linuxに付いていたemacsを使うと色が変わりません。そうやったら変わるのでしょうか?
もし設定等ありましたらお教えください。宜しくお願い致します。
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNGここはEmacsの設定スレではありません。テンプレにも書いてあるでしょ。
バージョンすら書いてないけど、メニューがあればメニューから選べるはず。
別の方法としては ~/.emacs.el (ないしは ~/.emacs)に
(global-font-lock-mode t)
と書いておくことかな。
次からはLinux板(になければUNIX板)のEmacsスレへどうぞ。
Linuxの各ディストリビューション、とりわけVineLinuxでは
他の環境のユーザが知らない独自設定がされている場合が多いので、
Linuxでの話はLinux板で聞く方がよいです。
0220デフォルトの名無しさん
NGNGそうでしたか。どうもすみませんでした。
そして答えていただきありがとうございました!
0221デフォルトの名無しさん
NGNG(lexical-let bindings body)において、bindings中の変数をgensymで作成した
uninterned symbolで置き換えることによって、lexical-scopingを実現している
んだろうなと思ったのですが、こんどはそれを参照する側のbody中の各フォーム
で元の変数への参照を、先のgensymで作成したシンボルに置き換えなくては
なりませんね? これって異常に大変そうなのですが、ほんとにそうやっているの
かな?
0222デフォルトの名無しさん
NGNGシンボル名の完全な置き換えなんてマクロを全部展開した上でないと無理だし、
コンパイル時に行わないと時間掛かりすぎるし。
0223デフォルトの名無しさん
NGNG(macroexpand '(lexical-let ((a 10)) (+ a a)))
(let ((--a--95409 10)) (+ (symbol-value (quote --a--95409)) (symbol-value (quote --a--95409))))
0224デフォルトの名無しさん
NGNGcl-macroexpand-all 使って、全部展開して置き換えてる。
肝は lambda 式の変換だと思う。
(lexical-let ((foo 1)) (lambda (n) (+ n foo)))
が
(lambda (&rest --cl-rest--) (apply (quote (lambda (G56371 n) (+ n (symbol-value G56371)))) (quote --foo--) --cl-rest--))
みたいになる。
0225デフォルトの名無しさん
NGNGCLパッケージのマニュアルにも、定義している関数外にクロージャを
持ち出さない限り、普通のLetを使うべしみたいなことが書いてあったと思う。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG実現するには、Cレベルでいじる必要があるのではないでしょうか。
ところで、#|〜|#ってどんな場面で重宝しますか?
0228226
NGNG.emacs内の一連の動作を一時的に無効にする時にあると便利だと思いますけど.
C++で言えば;が//,#|〜|#が/*〜*/にあたります.(一応)
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG>.emacs内の一連の動作を一時的に無効にする時にあると便利だと思いますけど.
慣れとは恐ろしいもので、私の場合、行頭に;;を複数行にわたって入れるだけで
今のところ不便を感じません。ただ
(or (test1-p foo)
(test2-p bar))
で、(test1-p foo)を殺すのは
(or ;;(test1-p foo)
...)
でいけますが、(test2-p foo)を殺すときに、
(or (test1-p foo)
;;(test2-p bar)
)
と最後のカッコを移動するのが面倒だと思うことがあるので、最初から
(or (test1-p foo)
(test2-p bar)
)
と書くことがあります。
(when nil ...)
などコードの解釈で、無効にするやりかたは、色がコメント色にならず、
意味が分かりづらいのでほとんど使いません。
0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNG調べたらありますた。comment-region, uncomment-region
|(or (test1-p foo)
| -!-(test2-p bar)-!-)
-!-と-!-がregionとしてこの状態で、M-x comment-regionすると、
|(or (test1-p foo)
| ;; (test2-p bar)
| )
になりました。これであしたはホームランだねパパ。ありがとう。
0238デフォルトの名無しさん
NGNG基本的なとこはCommonLispに習うべきだと思うなあ・・
#|〜|#はネストもできるんだぜ?
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNG>基本的なとこはCommonLispに習うべきだと思うなあ・・
これは賛成。
>#|〜|#はネストもできるんだぜ?
現状での解決策は、
;; ;;(foo)
;; ;;(bar)
;; (buz)
というように行を分けて書くしかないのかな?
0241デフォルトの名無しさん
NGNG;; ;;(bar)
;; (buz)
このやり方で、コメントを外すときとコメントにするときは、
C-x r d (delete-rectangle)とC-x r t (string-rectangle)を私は使用しています。
みなさんはどうですか?
0242デフォルトの名無しさん
NGNGおなじく。C-x r k の方をよく使うけど。
kill-rectangle-saveが欲しい……
0243デフォルトの名無しさん
NGNGC-u M-x comment-region
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNGまぁまぁ分かりやすいですよ。日本語訳されていないのかと思ったら、されていますね。
それとも、そんなこと知っててadvice.elファイル内のCommentary部分の話をしているのでしたら、スマソ。
0246デフォルトの名無しさん
NGNG関数名を生成してコールすることは可能でしょうか?
よろしくお願いします。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG事故解決しました
(funcall (intern "abc"))
0250246
NGNG文字列から生成された関数monyoに値をsetfしたいのですが
失敗してしまいます。
どこがまずいのでしょうか?
申し訳ありませんが、教えてください。
(defmacro monyo (a)
`(car ,a))
(let* ((data 'c)
(li '(a d))
(func "monyo"))
(setf (funcall (intern func) li) data)
(print "~S" li))
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています