Pytania otagowane jako language-design

Znacznik dla pytań związanych z projektowaniem dowolnego aspektu języków programowania.

7
Jakie są punkty ścisłości Haskella?
Wszyscy wiemy (lub powinniśmy wiedzieć), że Haskell jest domyślnie leniwy. Nic nie jest oceniane, dopóki nie musi zostać ocenione. Kiedy więc trzeba coś ocenić? Są punkty, w których Haskell musi być surowy. Nazywam te „punktami ścisłości”, chociaż ten konkretny termin nie jest tak rozpowszechniony, jak myślałem. Jeśli chodzi o mnie: …

9
Po co projektować język z unikalnymi anonimowymi typami?
To jest coś, co zawsze mnie niepokoiło jako cecha wyrażeń lambda w C ++: typ wyrażenia lambda w C ++ jest unikalny i anonimowy, po prostu nie mogę go zapisać. Nawet jeśli utworzę dwie lambdy, które są dokładnie takie same pod względem składniowym, otrzymane typy są definiowane jako różne. Konsekwencją …

4
Dlaczego ostatnia część nazwy metody Objective-C musi przyjmować argument (jeśli jest więcej niż jedna część)?
W Objective-C nie można zadeklarować nazw metod, w których ostatni składnik nie przyjmuje argumentu. Na przykład poniższy kod jest niedozwolony. -(void)take:(id)theMoney andRun; -(void)take:(id)yourMedicine andDontComplain; Dlaczego Objective-C został zaprojektowany w ten sposób? Czy to tylko artefakt Smalltalk, którego nikt nie widział potrzeby się pozbyć? To ograniczenie ma sens w Smalltalk, ponieważ …


4
Dlaczego szablon funkcji nie może być częściowo wyspecjalizowany?
Wiem, że specyfikacja języka zabrania częściowej specjalizacji szablonu funkcji. Chciałbym poznać uzasadnienie, dlaczego tego zabrania? Czy nie są przydatne? 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 allowed!



8
Dlaczego w Javie pojawia się błąd kompilatora „nieosiągalna instrukcja”?
Często stwierdzam, że podczas debugowania programu wygodne jest (choć może to być złą praktyką) wstawienie instrukcji return wewnątrz bloku kodu. Mogę spróbować czegoś takiego w Javie ... 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"); } } oczywiście …


4
Dlaczego typ danych instrukcji przełącznika nie może być długi, Java?
Oto fragment samouczków Java firmy Sun : Przełącznik działa z byte, short, chari intprymitywnych typów danych. Działa również z wymienionych typów (omówionych klas i dziedziczenie) i kilka specjalnych klas, które „wrap” pewne prymitywne typy: Character, Byte, Short, i Integer(omówione w prosty Data Objects). Musi istnieć dobry powód, dla którego longpierwotny …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.