Нельзя.
Не плодите в ветках Ваше негативное отношение - мы будем его убивать. Конструктив мы читаем.
Нельзя.
Не плодите в ветках Ваше негативное отношение - мы будем его убивать. Конструктив мы читаем.
Добавьте. class поля и методы пришли из delphi. Static class - да, надо сделать
Да, но ведь Вы делаете не копию Delphi. Многого, что есть в PascalABC.NET нет в Delphi и наоборот. Я знаю про то, что статические члены класса иногда называют классовыми, но static для них всё же явнее. К тому же, в структурах тоже есть статические члены, и когда они называются классовыми, получается уже некрасиво, говоря прямо. Такая крепкая параллель между терминами программирования и непосредственно языком не приводит ни к чему хорошему. Явный пример-Python.
Сделал, добавьте лейбл…
Пожалуйста, примеры в студии, где он не работает и issue на github. Как делает Sun_Serega.
begin
ReadlnString().ToWords().Where(x -> x.All(y -> y in ['0'..'9'])).JoinIntoString(' ').Println();
end.
А теперь начинаете как то упрощать, если ошибка пропадает - возвращаетесь назад с Ctrl+Z и пробуете другое. Правда анализатор кода не сразу обновляется, но если отформатировать и подождать пока появятся точки сворачивания кода - можно быть уверенным что он обновился. И в конце то что получится постите на гитхаб, со скриншотом и кодом как тут (так тоже ``` пашет). Только скриншот ещё можно ещё в пеинте подрезать, чтоб без лишнего. А, и ещё стоит для начала проверить нет ли уже открытой issue про это, открытых не так много. Чтоб дубли не создавать.
Если написать:
begin
ReadlnString().ToWords().Select(x -> x).JoinIntoString(' ').Println();
end.
, то все хорошо. Но если добавить вложенную лямбду, то перестает работать. Но в любом коде, который верен синтаксически должен нормально работать Instellisence, несмотря на то насколько он “навороченный”. Проверял в самой последней версии компилятора.
Ну так то да, но сложные программы работающие с первого запуска это миф. А с анализатором кода - очень сложно искать ошибки, ведь они появляются в самых неожиданных случаях. Поэтому надо находить их и постить на гитхаб, сами ошибки точно не найдутся. И чисто теоретически можно запостить в таком сыром виде, не убрав всё что не участвует в ошибке, но и исправлять это будут дольше. Раз вам так неприятно что анализатор кода не работает как надо - это не в ваших интересах.
Говоря про сложность нахождения ошибок, можно, в принципе, попробовать сделать программу, которая переберёт много разных вариантов и найдёт странные. Надо только разобраться - как тестировать файлы как отсюда. Но такая программа всё равно найдёт не всё.
“Тестирование программ может использоваться для демонстрации наличия ошибок, но оно никогда не покажет их отсутствие” (Э.Дейкстра, 1970)
Ну да, все ошибки никогда не будут исправлены, но и, к примеру, в студии их хватает, хоть её много профессионалов делало… Но с каждой исправленной ошибкой барьер сложности программы, после которого ошибки начинают проявляться - отдаляется.
Я не думаю, что пытаться подсадить малочисленную команду энтузиастов-разработчиков бесплатного проекта PascalABC.NET на постоянное исправление intellisence - это хорошая идея.
Все же одно из основных назначений проекта - обеспечить быстрое “вхождение в язык” и приобщить к пониманию современных технологий программирования новичков. А для этого нужно в первую очередь “вылизать” некоторые базовые вещи. Постоянное отвлечение разработчиков на “высокие материи”, о чем я писал неоднократно, отодвигает срок появления окончательных спецификаций языка в виде его описания. А без описания в школах невозможно обеспечить нормальное использование прибамбасов, отличающихся от ТурбоПаскаля. В результате мы имеем язык для каких-то, извините, сектантов, упорно отвергаемый большинством из-за непонимания его концепций.
По вашему IntelliSence “высокие материи”? Тогда может и классы с интерфейсами и обобщениями туда же отнести? Зачем тогда вообще эту среду делали? Если для обучения - то зачем туда столько напихали, если для хоть какой-то работы, то почему даже IntelliSence криво работает?
Я против такого отношения к среде - если делать, то нормально. А с вашим отношением, @RAlex, извините, но мы далеко не уедем.
Если назвать файл именем, например, PABCExtensions.pas, а затем написать:
begin
Writeln('Hello world');
end.
, то не выполняется и не компилируется с неадекватным сообщением об ошибке:
Неизвестное имя 'Writeln'
. Почему бы не выдавать сообщение о том, что это недопустимое имя?
Анализатор кода надо исправлять. У семейства паскалевых и так достаточно плохой славы в школах, пробиваться в олимпиадные и т.п. языки поскорее, когда написание кода всё ещё напоминает минное поле - ужасная идея… Но, как раз, исправлять ошибки, которые проявляются только при желании найти ошибку, а не написать программу - отходит на второй план.
Конечно, это не приятно - когда нашёл ошибку, а исправлять её не хотят, но вы можете сохранять такое где то на компьютере или в облаке, для более удобного времени. Хотя гарантий что такие времена настанут тоже никто не даст))). Но опять же, никто не будет мешать вам приблизить эти времена, поучаствовав в разработке паскаля…
Сейчас, на сколько я понимаю, самая большая проблема с документацией, надо исправить справку, возможно и полностью переделать её. И возможно придумать ещё что то что поможет новичкам быстрее и мягче начать программировать… С тем что лучше всего у этого паскаля удаётся обеспечить “вхождение” в мир программирования - я согласен с @RAlex. И если говорить про “вылизанность” - основные функции компилятора, которых будет достаточно для начала, работают безотказно, а вот всевозможных туториалов, с пояснениями что пошло не так - явно не хватает.
Если же вам не подходят предыдущие способы, и вы считаете нахождение ошибок хорошей помощью - могу вам лишь подсказать: Искать их в лоб, нудно и без цели - даст вам только ошибки как в последнем сообщении. Вместо этого лучше найдите что то, для чего можно написать программу, и используйте для этого как можно больше навороченных методов (лямбды, экстеншн методы и т.п.). Это улучшит ваше понимание о их работе + выкопает целый мешок ошибок.
Вы сначала определитесь, куда едете.
В сторону исправно работающего паскаля.
Почему он ругается, что Interpolators.pas(47) : _low не объявлен в типе TInterpolator?
Архив: Engine 5.2.4.
Кстати, ошибка с Sealed Abstract Class появилась и у меня, только после вчерашнего обновления(а так не обновлялся с февраля). В MnistNet(скачать архивом можно в теме про json) используется данная запись, и есть откомпилированная версия в подтверждение.
Ну правильно, комит запретивший это был сделан меньше месяца назад, + попадают в билд они далеко не сразу. А вообще надо было сначала обновится, а потом уже вступать в дисскусию))) Могу кстати подарить мою авто обновлялку (исходники). Держу на рабочем столе ярлык от .exe, удобно…