106
Общий раздел / Re: Oberon-07/13: заметки
« : Июнь 28, 2014, 04:49:28 am »Зачем перегружать известные и предсказуемые конструкции всякой чухнёй?
И вам спасибо за отзыв
![Улыбающийся :)](http://oberspace.org/Smileys/default/smiley.gif)
Онлайн компилятор Oberon-07/11
Путеводитель по Оберон-проектам.
Логи jabber-конференции.
Онлайн исходники BlackBox: тут:WeBB и на github
Исходники Project Oberon V4 на github.
Сборник решений задач книги "Современное программирование с нуля!" тут. А обсуждение здесь.
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
Зачем перегружать известные и предсказуемые конструкции всякой чухнёй?
Цитироватьinvalid type test: a value variable cannot be used
vlad, ты тут как бы намекаешь, что плюшка только для POINTER?
Кроме того похоже что вообще IS нельзя с RECORD использовать. Это что за прикол?
VAR v <- x.pointerToRecordField^;
ASSERT(v IS Derived);
Всё герметично! :-)чота не заметно:
каким будет тип поля derivedField -- целым или вещественным?
Дико извиняюсь. Не читаю я все.
Я бы и в код мог посмотреть, но больно тошнотворен жабаскрипт для моего нежного мозга.
Должно бы быть да, но нет. Похоже баг. Следующее успешно компилится. Но ясно что это не правильно.
О, Geniepro, спасибо. Интересный вопрос.
Очевидно, что есть более простое решение. И оно давно известно (WITH).
Простота достигается с помощью разделения и специализации. (Разделяй и властвуй)
У тебя же с точностью наоборот. Попытка впихнуть невпихуемое.
А на счет простоты математики не понял. Выражение может быть сколь угодно сложным.
Значит ты либо должен сделать полный вывод и компиляцию раскладов (не представляю возможно ли такое), либо врубать неопределенность при первом шухере..., но в чем тогда смысл? По сравнению с WITH это похоже на использование скотча.
Не понял шутку юмора. Так значит таки не работает? O_o
TypeError: undefined is not a function
А вообще, вот это конкретное изменение (2), имхо, прямо противоположная идеям Оберона вещь.
v <- f(); (* новая переменная 'v' такого же типа, как результат f() *)
https://github.com/vladfolts/oberonjs/wiki/Eberon-In-Place-Variables IF pb IS PDerived THEN
pb.derivedField := 123;
END;
Вот - ЧТО ЧИТАТЬ и СМОТРЕТЬ??? Хочется ХОРОШЕЙ фантастики, а её - НЕТ.