- 37 名前:デフォルトの名無しさん mailto:sage [2014/11/09(日) 19:39:55.45 ID:KOr7L+hP.net]
- >>31
C#、Java8、C++11、JavaScript、Ruby 等々の関数型プログラミングが可能な言語では、 どれも「ラムダ式の中であっても外の環境を参照し、それを局所環境に保存」できる それに対して、Python だと「ラムダ式の中では外の環境を参照する」ことしかできない つまり、手続き型言語の Python は関数型プログラミングには不向きである、と言える >>32 >> 引数以外の変数を実行時の環境ではなく、 >> 自身が定義された環境(静的スコープ)において解決することを特徴とする。 クロージャを備えた言語ではクロージャ自身が局所環境を持つということだね(>>4 も参照) だから、関数内でもラムダ式内であっても局所環境で変数を解決できる それに対して(クロージャを備えず、代わりに)関数という実行環境しか持たない Python では、 関数内では変数を解決できてもラムダ式内で変数を解決できない つまり、Python はクロージャを持たない手続き型言語
|

|