Emacs Lisp
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG少数派による互助を中心に、初心者の相談も気が向けば受け付けます。
単なる Emacs ユーザーは別板の Emacs 関連スレにどうぞ。
*関連スレ
LISP Scheme Part2
http://pc.2ch.net/test/read.cgi/tech/1002584344/
LISP Scheme
http://pc.2ch.net/test/read.cgi/tech/987169286/
00021
NGNG0003デフォルトの名無しさん
NGNGその利点は何?
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGいやCは使ってると思うが…
Emacs Lispがなくて、かわりにカスタマイズや拡張をCだけでやるしかないとし
たら、あんなに気軽に拡張はできなかったね。.emacs書き換えるたびにビルド
し直すんだろ?(w
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG> 先生!なぜEmacsはメジャーなCとかではなくてマイナーなLispを採用したのですか?
> その利点は何?
CがメジャーでLispがマイナーと言ってる時点でもうなんか終わってるな。
Lispは十分メジャーだよ。
それにカスタマイズ用に俺自作謎言語なマクロを実装しているエディタだって
沢山あるのに…。(エディタに限らないが)
0008デフォルトの名無しさん
NGNG柔軟だから。C よりはるかに柔軟だから。
0009デフォルトの名無しさん
NGNG実際はともかく、C メジャー、Lisp マイナーというのが普通(?)の多くの人の考える
ところのような気がするのですが。
0010デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/unix/1001087615/l50
こっちじゃダメなのか?
0011デフォルトの名無しさん
NGNGelisp ライブラリの数の多さを見れば十分メジャーだよ。
C に比較すれば少ないという点は否定しないけどね。
0012デフォルトの名無しさん
NGNGどうすんのさ。Cインタプリタでも書く?
それならLispにした方が2^24倍かしこいだろ。
0013デフォルトの名無しさん
NGNGCなんてほとんど使われてないと思うけど…
(あるのか?)
0014デフォルトの名無しさん
NGNG>>3 は秀丸とかWZとかのC風マクロ言語を意識してるんじゃない?
0015デフォルトの名無しさん
NGNGうん、そうかも。それってどマイナーだよね。
0016デフォルトの名無しさん
NGNGdefun と message と ifが使えるようになったにょ〜。
0017デフォルトの名無しさん
NGNG先が思いやられるな
0018デフォルトの名無しさん
NGNGelisp が「本物」の lisp や scheme だったらもう文句なしなのに.
0019デフォルトの名無しさん
NGNG「本物」の lisp であっても再帰には制限あると思うけど。
Schemeはともかく。
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNGGNU Emacs自体はScheme(1975年)ほど古くはないけど、
elispの仕様はMacLispとかの古いLispに非常に近いね。
特に、dynamic scopeしかないところが。
0022デフォルトの名無しさん
NGNG> それならLispにした方が2^24倍かしこいだろ。
やはり残りの8bitはタグですか?
0023デフォルトの名無しさん
NGNGずいぶん重なるんでじゃないですか?
0024デフォルトの名無しさん
NGNG00251
NGNGやはりそうなるんでしょうか。
この板に来るんだけれども、UNIX 板などには来ない人からのレスを期待して
しまっていました。lisp 人口が少しでも増えないかなとか思いつつ。
lisp か C かはアレとして、>>16のような人が増えると、みんなが幸せに
なれますね。
0026デフォルトの名無しさん
NGNGちょっとした小物が多いだろうし。
0027デフォルトの名無しさん
NGNGElispが上位8ビットをタグに使っていたことを知っている人が
いるとは思わなかった。今は5ビットだけどね。
0028デフォルトの名無しさん
NGNGUNIX板はEmacsスレは結構盛んです。一ヶ月半の間に500近い書き込み。
自分もよく教えてもらってます。
0029名無しさん@Emacs
NGNG厨房っぽい質問してもシカトされるので、こういうスレは助かります。
今、「リスト遊び」とelisp introの日本語訳を読んでます。
テキストを扱う仕事なので、非常に興味を引かれます。
最初は基地外みたいな言語だと思ったけど、なんとなく理解できてきました。
OSを問わずほぼ同じ環境を整えられるというのは、
計り知れないメリットだと思います。
一生かけて使い込んでみようかなという気になります。
0030デフォルトの名無しさん
NGNGどのような時なんでしょうか?
dynamic scope だけでも特に困ったこと無いんですが...
0031デフォルトの名無しさん
NGNGタグ5bitってLSBに持ってるんですよね? で、セルは32bitアラインで配置かな。
俺が見たLispは68010用。よってMSB8bitがタグ。これ最強。
今はこういう貧乏臭い実装って嫌われるから鬱。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG仮引数に対しては静的だよね?
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGなんでMSBにTAGつけるのにアラインさせるの?
LSBも空きができるじゃん。
0036デフォルトの名無しさん
NGNG違う。最初のLISPはIBMの機械。
Macの実装が多いのは、昔からメモリたくさん積んでたし、
リニアで何メガバイトもアクセスできるという、68000の石の特性も
あると思う。
0037デフォルトの名無しさん
NGNG仮引数って (defun hoge (hage) ..)
の hage の部分ですか? それも動的スコープだと思う.
>>34
初期の MacLisp という名が混乱の元では.
0038デフォルトの名無しさん
NGNGなるほどー。ありがとです。
003933
NGNGhageの方です。
0040デフォルトの名無しさん
NGNGたしかどっちも動的 scopeだと聞いた記憶がある。
そこに静的 scopeの schemeが気炎を吐いていたと。
静的 scopeの方が compileするためには楽だけど、interpreterだと
そんなに問題にならないのかもな。
macroとか書くときにイヤーソなことにならないかしらん。
0041暗黙の名無しさん
NGNG0042デフォルトの名無しさん
NGNGそのときのために
set-g-value : (setq gGlobalValue num)
inc-g-value ; (setq gGlobalValue (+ gGlovalValue 1))
put-g-value ; (insert int-to-string gGlobalValue)
って3つのコマンド作ったんだけど、もしかして標準で同じようなのってある?
0043デフォルトの名無しさん
NGNG1+ のような関数ならあるけど, 破壊的なのはないと思った.
破壊的な汎用 1+ は macro で書ける. elisp manual の macro の所に
サンプルがあったと思う.
僕はキーボードマクロでも eval-expression を使うことが結構あるな.
0044デフォルトの名無しさん
NGNGMIT AI Lab. の出身で、彼自身が Lisp プログラマだから。
ということは偶然が単に定着しているだけかな。
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNGgclを早速動かしてみようとおもいcygwinに入れました。
インストールの途中でraw_gcl.exeがスタックダンプを
吐き出して止まります。。。どうしよう。
0047デフォルトの名無しさん
NGNGソースのコメントに日本人の名前が入ってるから
これ使いたいけど自分じゃちょっと厳しいかも。
0048匿名λ式
NGNG自由変数のscopeがlexicalなのが静的。そうでないのが動的。
静的の利点は、効率とprogramの可読性。
(defun foo (x)
(bar))
;; 互いに独立なので、fooとbarは同一lexical scapeではない。
(defun bar ()
x)
で、barからfooのxが参照できるのが動的。
;; Schemeはこれが出来ない。MacLisp, InterLisp, elispは可能。
;; Common Lispはスペシャル変数だけ可能。
;; MacLispにはcompile時のみ出来ないという時代もあった。Shallow binding以前。
(defun baz (x)
(let ((y))
(seq y (+ x x))
y))
xの参照はbinding levelを一つ越えているけど、lexical scape内だから可能。
これが「静的」の意味。binding levelはlexicalなものに限って越えられる。
;; scapeにおいて、lexical = staticって用法は他の言語で一般的。
;; S式は動的に変化するのが特徴の一つだから何か変な話だけど。
004945
NGNGhttp://www.google.co.jp/search?q=cache:jGHzkwQfeA0:village.infoweb.ne.jp/~fwhw5892/cygwin/+cygwin+GCL&hl=ja
ここにも(2000.08.05)書いてあるとおりCygwinでgclは厳しいみたいです。
どうしよう。gソースの中へ入ってがんばるか、あきらめて他の
マシンで使うか。んー、、
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNGMeadowつかい始めたんですが、デフォルトだとc/c++モードの
オートインデントが半角スペースなんです。
4タブにしたいんですが、どうしたらいんですか?
0053デフォルトの名無しさん
NGNG動的スコープは、Schemeなら簡単なマクロで書けるでしょ。
でも、名前がうっかりぶつかるとプログラムが壊れるから不便だよね。
>動的スコープ。
やっぱりλならα変換ルール(束縛変数の名前を変えても意味が変わら
ない)が成り立ってくれないと…
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG簡単に書けるよ?
(define x #f)
(define foo
(lambda (new-x)
(let ((old-x x))
(dynamic-wind
(lambda () (set! x new-x))
(lambda () (bar))
(lambda () (set! x old-x))))))
(define bar (lambda () x))
もちろん、実際には(fluid-letとかの名の)マクロを使うけど。
0056デフォルトの名無しさん
NGNGそりゃ、xをグローバルにすりゃ書けるだろ
0057デフォルトの名無しさん
NGNGshallow bindingっていう手法だけど、知らないのかな?
Emacs Lispがやってるのは、本質的にこれと全く同じ。
005856
NGNG知ってるよ
でも意味が異なるだろ
0059デフォルトの名無しさん
NGNG「Unix板逝け **終了**」
で終わったのに、この違いはなんだ(藁
0060デフォルトの名無しさん
NGNG多分、>>3のおかげ。あの質問のおかげで最初の十数レスがまともな物になって、
そのおかげでそれに続く話題も(終了などにならずに)まともな物になりました。
(そういう雰囲気が作られたわけです)
2ちゃんでは、スレの初めの方のレスはかなり大きな意味を持っています。
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGこめんな、それ言ったのはおれだよ
0063デフォルトの名無しさん
NGNGどう違うの? 全く同じだと思うが。
0065デフォルトの名無しさん
NGNGH○PやR○byの煽り合いスレよりゃぁだいぶんマシ。
0066デフォルトの名無しさん
NGNGひとつ気づいたんだけど、ある程度難しい話をしてると、奴等は寄ってこないんだよね。
0067匿名λ式
NGNG> でも、名前がうっかりぶつかるとプログラムが壊れるから不便だよね。
> >動的スコープ。
*standard-output*みたいなのを、multi thread環境で使う、
って局面ではあった方が便利だよね。
竹内さんもbitのTAOの連載で言っていたけど。
ただ、thread内でsingletonとして利用しないと、>>53の言うようにまずいわな。
>>55の実装のためには、「thread-localな環境」が欲しくなるな。< multi threaded
こういう研究や実装って最近どうなんですか? > 現役の方々
0068デフォルトの名無しさん
NGNGそーか、ここのひとはみんな優しくてそのようなあたりまえのことは指摘しないのかな。
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNGどうせ elisp と互換がないのだったら scheme にした方が
よかったような気がするんだけど.
0074デフォルトの名無しさん
NGNG汚くてもC++の方が実用性あるのといっしょ
0075デフォルトの名無しさん
NGNGWhats?
0076デフォルトの名無しさん
NGNG試してからいえっつーの。
もし、dynamic-wind をよく知っているのに問題に気づかないというなら
lexical scope か代入のことをよく知らんのだ。
0077デフォルトの名無しさん
NGNGまさか、>>55にでてくるトップレベルのxが
実際にxという変数名だと理解してるのだろうか?
0078デフォルトの名無しさん
NGNGSchemeのfluid-letと同等ではない。
しかし、Emacs Lispのdynamic scope変数とは同等だろ?
(ここはElispスレだということを理解してる?)
0079デフォルトの名無しさん
NGNGRubyに実用性が無いという点にのみ同意。
0080デフォルトの名無しさん
NGNG厨房を呼ぶ呪文か。やめい。禁ッ
0081デフォルトの名無しさん
NGNG明示的に仮引数でやるようにした方が見通しいいと思うんだけど,
結構いろいろな package で使ってるようですね. skk とか wl とか.
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086匿名λ式
NGNG((gnu (gnu is not unix)))
gnu)
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG(car gnu) => gnu
(car (force (cdr gnu))) => gnu
(car (force (cdr (force (cdr gnu))))) => gnu
しかし全然Emacs Lispと無関係。
0089デフォルトの名無しさん
NGNGを忘れてる。
0090名無しさん@お腹いっぱい。
NGNGウィザードまでは使ってもあくまでソース編集からコンパイルまでは
Emacsですか?
0091デフォルトの名無しさん
NGNG0092名無しさん@お腹いっぱい。
NGNGそれは無理だと思うけどウィザードで生成したコードを、
編集するところにEmacs使ってるのかなっておもってさ。
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNGMeadow は違うの?
0095デフォルトの名無しさん
NGNG非同期プロセスは使えるの?
dos の時はもちろん使えなかったけど.
0096匿名λ式
NGNGXEmacs動いてるんちゃう?
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGものかも.
0099デフォルトの名無しさん
NGNG変態配置覚えちゃいなよ。
一週間もあれば慣れるよ。
010097
NGNGありがとう。
>>99
仕事柄、NOTEPADやVB/VCを主に使うので・・
多分、これだけあれば違和感ないと思うんだけど。
Home/End 行頭/行末
Ctrl+Home/Ctrl+End 文頭/文末
Shift+カーソル 選択移動
Ctrl+カーソル 単語移動
Ctrl+X カット
Ctrl+C コピー
Ctrl+V ペースト
Ctrl+A 全選択
Ctrl+S 上書き保存
Ctrl+F 検索
Ctrl+Z/Ctrl+Shift+Z Undo/Redo
F3/Shift+F3 次検索/前検索
0101デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています