Lexical Scope 2020/9
Lexical Scope(レキシカルスコープ)
変数yは自関数内で宣言されているのでグローバル変数は参照されない。
Lexical Scope(レキシカルスコープ)
- プログラム内での変数のスコープ。
- 複数の変数が宣言されていた場合に、実行時のスコープに最も近い変数が優先される。
x = 1 y = 2 func1 y = x + y
GHCi> func1 3 4変数xは自関数内で宣言されていないのでグローバル変数が参照される。
変数yは自関数内で宣言されているのでグローバル変数は参照されない。
x = 1 y = 2 func2 y = (\y -> (\x -> x + y) 11 ) 22
GHCi> func2 10 33 GHCi> func2 100 33x + y の変数yは外側のラムダ関数引数が参照され、func2への引数yはスコープ外なので無視される。