元スレEmacs Part 53
emacs覧 / PC版 /みんなの評価 :
401 = :
デフォルトではないと思うけど
402 = :
内部設定がデフォルトということではなくて、ソースコードの一番上にレキシカルスコープの宣言を書くことが当たり前になってるから、運用的にデフォルトということか
404 = :
>>403
言いたい事は分かるけど、それをダイナミックバインディングとは言わないんだよね
強いて言うならスペシャル変数のバインディングという感じか
ダイナミックバインディングと挙動が似てるから混同しがち
ひとつ例を出すと
;; -*- lexical-binding: t -*-
(setq hoge 1)
(defun print-hoge ()
(print hoge))
(defun foo ()
(let ((hoge 2))
(print-hoge)
(print hoge)))
(foo) =>
1
2
となる
setqで強引に作ったグローバル変数はスペシャル変数じゃないのでこうなるけど、一番上のコメント行を削除するとダイナミックバインディンになって
(foo) =>
2
2
となる
405 = :
ちなみにCommon Lispでも同じ挙動だ
でもCommon Lispをダイナミックバインドの言語とは言わないだろう(設定で出来るらしいが詳しくは知らん)
defvarとletの挙動はスペシャル変数のバインドと言えばいいだろう
406 = :
デフン、フー
407 = :
>>405
これは間違い?
http://www.nct9.ne.jp/m_hiroi/clisp/abcl19.html
408 = :
>>407
スペシャル変数はダイナミックスコープで管理されると言えばいいんだな
そもそもダイナミックバインディングとダイナミックスコープの用語を一緒くたにするというアホなことしてた
昔のEmacsはスペシャル変数でなくても、letで定義された変数を全てダイナミックスコープで扱うダイナミックバインディングだった
今はスペシャル変数のみダイナミックスコープで扱う、レキシカルバインディングが(運用上)デフォルトになっている
と言えばいいのかね
409 = :
しばらく触ってなかったが、今のEmacsLispはレキシカル・スコープなの?
410 = :
>>409
今でもデフォルトはダイナミックスコープだけど、24あたりのバージョンでレキシカルスコープの対応がされたであってるかな?
http://www.emacswiki.org/emacs/LexicalBinding
411 = :
そうそう
412 = :
.elの一行目に
;; -*- lexical-binding: t -*-
を書くとレキシカルバインディングになる
今は全部の.elに書かれてるから、もうデフォルトと言って間違いない
413 = :
>>412
要するに、デフォルトちゃうやん!w
414 = :
# cd /usr/share/emacs/27.1/lisp
# ls *.el.gz | wc -l
265
# zgrep -l lexical *.el.gz | wc -l
149
/usr/share/emacs/27.1/lisp 配下のファイルでは、lexical の宣言がされているのは、半分強くらいなようです。
415 = :
dynamic bindingは関数を弄らずに呼び出し側から出力先を変更出来るのが一番の恩恵だと思う
シェルのリダイレクトに似てるな
416 = :
>>414
今pretestがリリースされている28からだった
$ ls *.el | wc -l
268
$ grep -l lexical-binding *.el | wc -l
268
ちゃんと全部レキシカルバインディングになってるよ!
しかもNEWSには
** The 'lexical-binding' local variable is always enabled.
とも書いてある
これで内部もデフォルトになったよ
>>415
もうdynamic bindingの話はするな
するのならdynamic scopeというべし
417 = :
すみません
418 = :
デフォルトの意味が分かってない人がいるってマジ...?
420 = :
http://ayatakesi.github.io/lispref/27.2/html/Variable-Scoping.html#Variable-Scoping
↑ここを見れば全部書いてある
421 = :
lexical-bindingとdynamic-bindingはどちらかしか有効にならないから排他的だけど、dynamic scopeはlexical-bindingの時でもスペシャル変数がそれなので両方で使える
423 = :
歴史を語る売国奴めが
424 = :
売国奴w
こんな辺境のスレで国が売れるのかよw
425 = :
素直にすまんと認めてるのに周りが蒸し返して騒ぐのはいかがなものか?
426 = :
selectrum とか verticoの作者が競合のパッケージに一言書いてるの面白いね欧米だわ
日本であれやったらてめどこ中だよああん?ってなるわ
429 = :
いまくせあん
431 = :
emacsはイーマコよ
432 = :
emacsen って言うんじゃないの?
昔はemacs使いのことをそういうのをよく見かけたけど
434 = :
emacsen は Emacs っぽいエディターを指す単語で使用者のことではなかったはずだが...
(GNU Emacs, XEmacs, Meadow みたいな)
439 = :
いまや素のemacsなんてパッと起動するんだから、世の中進歩したよな…
440 = :
>>439
いろいろパッケージインストールするとやっぱり遅くなる。やっぱりDaemon使ってしまう。
441 = :
http://ejje.weblio.jp/content/boxen
由来はここら辺じゃないかな
442 = :
Emacsのカーソルがどうやってもbarになる上、点滅を無効にすることができない。
default-frame-alistやset-frame-parameterでcursor-typeをboxにしても無視されてしまうし
(blink-cursor-mode 0)も有効にならない。
試しにinit.elやpackageを読み込ませずにEmacsを起動するとbarの点滅になる。
カーソルのデフォルトはboxの点滅だったと思うのだけど。
443 = :
それemacsの問題なの?
444 = :
発生環境は秘密のようだから、偶然同じ原因で同じ症状を解決した人が通りすがるのを待つつもりなんだろ
なんとも気の長い御仁だとは思うが、人それぞれだな
448 = :
次は29.1
というか28はどこいった
450 = :
シェルじゃなくて端末エミュレーターでしょ
みんなの評価 :
類似してるかもしれないスレッド
- Emacs Part 54 (97) - [92%] - 2023/1/25 17:15
- Emacs Part 52 (984) - [92%] - 2021/5/13 1:45
- Emacs Part 51 (1005) - [92%] - 2020/3/26 18:30
- Emacs Part 50 (978) - [92%] - 2017/12/29 18:45
- Emacs Part 33 (1001) - [92%] - 2010/3/9 20:01 ○
- Emacs Part 43 (1001) - [92%] - 2013/12/14 11:30
- Emacs Part 41 (1001) - [84%] - 2012/12/24 4:15
- Emacs part 23 (1001) - [84%] - 2008/2/8 0:04 ☆
- Emacs Part 31 (1001) - [84%] - 2009/10/23 10:31 ○
- Emacs Part 32 (1001) - [84%] - 2009/12/20 2:04 ○
- Emacs Part 34 (1001) - [84%] - 2010/6/21 19:45 ○
- Emacs Part 35 (1001) - [84%] - 2010/9/19 17:01
- Emacs Part 36 (1001) - [84%] - 2011/3/1 5:02
- Emacs Part 37 (1001) - [84%] - 2011/6/20 19:47
トップメニューへ / →のくす牧場書庫について