LISPって実際どうなの... [無断転載禁止]©2ch.net (117レス)
上下前次1-新
抽出解除 レス栞
70: デフォルトの名無しさん [] 2017/01/02(月)19:26:42.79 ID:h7hZD8W/(2/2)
もちろんです
98(1): デフォルトの名無しさん [sage] 2021/09/04(土)17:04:32.79 ID:Q9qQqykt(1)
>>97
それは動的束縛とは関係無い
defvarで定義された変数はスペシャル変数といって、letで束縛するとそういう挙動になるというだけだ
setqで(無理矢理)定義したグローバル変数はそうならない
ちなみに今のelispは静的束縛が実装されて、全てそれを使うようになっている
ただ、互換性を保つためにまだデフォルトにはなってないけど、時間の問題だろう
105: デフォルトの名無しさん [sage] 2021/09/10(金)16:14:14.79 ID:y2IogSqT(2/4)
-*- lexical-binding: t; -*-の有無で静的束縛を有効無効に出来るけど、
↓有りの場合
$ emacs --script test-global-variable.el
"FOO"
"foo"
"bar"
"bar"
↓無しの場合
$ emacs --script test-global-variable.el
"FOO"
"foo"
"BAR"
"bar"
1つ嘘ついたか…動的束縛の場合は、setqで作ったグローバル変数もスペシャル変数になるようだ
しかし、スペシャル変数のletで束縛する挙動は静的動的束縛に関係無く同じ挙動だ
それが言いたかっただけ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.572s*