Здравствуйте, Сергей Губанов, Вы писали:
СГ>А зачем вводить в язык оператор switch (или CASE) если его можно эмулировать с помощью цепочки if-else?
А в самом деле зачем? Если раз в год понадобится и на том спасибо. В прочем switch как и goto могут понадобиться при машинной кодогенерации. Например при генерации парсеров.
СГ>А зачем вводить в язык несколько циклов WHILE, REPEAT, FOR, LOOP если достаточно одного?
Вот я тоже не понимаю зачем? Мне for'а в С++ хватает за глаза. Ну иногда еще while использую. Но если бы его не было то я бы не растроился.
СГ>Это нужно для написания более оптимальных программ.
Чего чего??? Блин скажи это оптимизатору

или в оберонах он отсутствует как класс? Ну если так тогда понятно.
СГ>В обероне WITH — это тот же самый CASE но только CASE — работает с перечислимыми типами, а WITH работает со внутренним тегом в котором зашифрована RTTI информация о динамическом типе полиморфной переменной. Теоретически (я не проверял) WITH должен работать быстрее чем цепочка dynamic_cast-ов, равно как swith теоретически должен работать быстрее цепочки if-else. Плюс к этому — большая структуризация текста программы.
Ты не кружи. Ты скажи на кой черт оно надо? У меня вобще ни разу жилания не возниколо воспользоваться подобной штукой.
В чем практический смысл этой конструкции? Я конечно понимаю что если конструкция есть то ее можно задействовать. Но водить в язык конструкции которые практически не востребованы...
Кстати объясни пожалуйста почему
FOR i := 0 TO Self.p DO
h.x := h.x + N[i] * Self.Pw[span - Self.p + 1].x;
h.y := h.y + N[i] * Self.Pw[span - Self.p + 1].y; //тут точка с запятой нужна
h.z := h.z + N[i] * Self.Pw[span - Self.p + 1].z //А тут нет
END;
В чем тайный смысл?
... << RSDN@Home 1.1.4 rev. 185 >>