범위가 정의 된 언어가 동봉 된 함수로 확장되지 않는 방식으로 있습니까? X는 기능 fact
내에 정의되어 있지 않기 때문에전역 변수가없는 프로그래밍 언어가 있습니까?
>>> x = 3
>>> def fact(n):
... print x
... return reduce(lambda u, v: u*v, xrange(1, n+1), 1)
...
오류를 줄 것이다 : 즉 다음 (파이썬 같은 구문)와 같은 코드는 언어가있다?
일반적으로 범위의 모든 함수에 정의 된 함수가 포함되지 않는 언어가 있습니까?
편집 : 정보 주셔서 감사합니다.
문제 때문에 : 나는 이것에 대해 생각하는 이유는 포함 된 기능을 제공하는 모든 환경에 대한 액세스 권한을 가진 내부 함수의 상황이 자신의 argument against OOP에서 조 암스트롱에 의해 기술 된 상황에 나에게 의심 가까운 소리이다 은 객체 지향 언어입니다. 이 암시 적 환경을 모두 가지고 있습니다. 그들은 그들과 함께 다니고 있습니다. 당신 는 바나나를 원했지만 바나나를 들고있는 고릴라와 전체 정글 이었습니다.
또한 관련성은 내가 어떻게 작동하는지 전혀 모르지만 언어 Newspeak에는 글로벌 네임 스페이스가 없다는 이야기가 들립니다.
Pythonspeak 또는 System에서 많은 다른 언어로 된 __builtins__
에서 가져온 기능을 내장 함수 (아래의 Brian 주석에서 제기 한 문제)가 모든 함수의 인터프리터/컴파일러에 의해 인위적으로 소개 될 수 있습니다. 결국 그들은 거의 항상 처음부터 특수 언어로 취급됩니다. 또 다른 옵션은 함수의 매개 변수로 전달되거나 내부에서 모듈로 가져온 객체의 메소드로 가져 오는 것입니다.
그게 무엇입니까? – Blindy
'print','reduce' 및'xrange'도 일부 외부 범위에서 해석되는 식별자로 보입니다. 왜 이것이 거의 유용하지 않은지를 보여줍니다. – Brian