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*