«language-design» 태그된 질문

프로그래밍 언어의 모든 측면 디자인과 관련된 질문에 대한 태그입니다.

4
Objective-C 메서드 이름의 마지막 부분이 인수를 가져야하는 이유는 무엇입니까 (여러 부분이있는 경우)?
Objective-C에서는 마지막 구성 요소가 인수를받지 않는 메서드 이름을 선언 할 수 없습니다. 예를 들어, 다음은 불법입니다. -(void)take:(id)theMoney andRun; -(void)take:(id)yourMedicine andDontComplain; Objective-C가 이런 방식으로 설계된 이유는 무엇입니까? 아무도 제거 할 필요가 없다고 생각한 것은 스몰 토크의 유물 이었습니까? 이 제한은 Smalltalk에서 의미가 있습니다. Smalltalk는 메시지 호출 주위에 구분 기호가 없기 때문에 …

7
Haskell의 엄격함은 무엇입니까?
우리 모두는 Haskell이 기본적으로 게으르다는 것을 알고 있습니다 (또는 알아야합니다). 평가할 때까지 아무것도 평가되지 않습니다. 그렇다면 언제 무언가를 평가해야합니까? Haskell이 엄격해야하는 점이 있습니다. 이 특정 용어가 내가 생각했던 것만 큼 널리 퍼지지는 않았지만 나는 이것을 "엄격 점"이라고 부른다. 나에 따라: Haskell의 감소 (또는 평가) 는 엄격 성 지점 에서만 발생합니다. …

9
고유 한 익명 유형으로 언어를 디자인하는 이유는 무엇입니까?
이것은 항상 C ++ 람다 식의 기능으로 나를 괴롭히는 것입니다. C ++ 람다 식의 유형은 독특하고 익명이므로 간단히 적을 수 없습니다. 구문 적으로 정확히 동일한 두 개의 람다를 생성하더라도 결과 유형은 구별되도록 정의됩니다. 그 결과, a) 람다는 컴파일 시간을 허용하는 템플릿 함수에만 전달 될 수 있으며, 말할 수없는 유형은 객체와 …

4
함수 템플릿을 부분적으로 전문화 할 수없는 이유는 무엇입니까?
언어 사양 이 기능 템플릿의 부분적인 전문화를 금지한다는 것을 알고 있습니다 . 나는 그것이 그것을 금지하는 이유를 알고 싶습니다. 유용하지 않습니까? template<typename T, typename U> void f() {} //allowed! template<> void f<int, char>() {} //allowed! template<typename T> void f<char, T>() {} //not allowed! template<typename T> void f<T, int>() {} //not …

7
"개체"클래스의 인스턴스에 속성을 설정할 수 없습니다.
그래서 저는 이 질문에 답하는 동안 파이썬을 가지고 놀았는데 이것이 유효하지 않다는 것을 발견했습니다. o = object() o.attr = 'hello' 때문에 AttributeError: 'object' object has no attribute 'attr'. 그러나 객체에서 상속 된 모든 클래스는 유효합니다. class Sub(object): pass s = Sub() s.attr = 'hello' 인쇄시 s.attr예상대로 'hello'가 표시됩니다. 왜 그렇습니까? …



8
Java에 "도달 할 수없는 문"컴파일러 오류가있는 이유는 무엇입니까?
나는 종종 프로그램을 디버깅 할 때 코드 블록 안에 return 문을 삽입하는 것이 편리하다는 것을 알게됩니다. Java에서 이와 같은 것을 시도해 볼 수 있습니다 .... class Test { public static void main(String args[]) { System.out.println("hello world"); return; System.out.println("i think this line might cause a problem"); } } 물론 이것은 컴파일러 …


4
왜 당신의 switch 문 데이터 유형이 길지 않습니까, Java?
다음은 Sun의 Java 자습서 에서 발췌 한 것입니다 . 스위치는 작동 byte, short, char, 및 int기본 데이터 형. 또한 특정 기본 유형을 "포장"고 (클래스와 상속에서 논의) 열거 유형과 몇 가지 특별한 클래스와 함께 작동 : Character, Byte, Short,과 Integer(단순 데이터 개체에서 논의). long기본 데이터 유형이 허용되지 않는 이유가 있어야합니다 . …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.