Замечания и предложения

uses в коротких программах не очень дружелюбные:

##
uses u1, u2; // Ok
uses u3; // Вторую секцию uses нельзя на уровне синтаксиса

Это issue?

Только одна секция uses возможна в коротких программах. В коротких программах вообще многое ограничено - они же короткие

2 лайка
##
var comments := '{~} //~'#10' (*~*)'.ToWords
  .Select(w->w.Split(|'~'|,2))
  .ToDictionary(
    \(key, value) -> key,
    \(key, value) -> value
  );

Тут выдаёт 2 лишних предупреждения. По моему предупреждения не_использованных параметров не должны выдаваться, как и в случае без \.

F1 открывает справку msdn не для той версии .Net .
Я сам заметил на DateTime.TryParseExact: Если поставить на него курсор и нажать F1 - откроется страница с документацией по .Net5.0, в которой у этого метода совершенно не те же перегрузки что в .Net Framework.

@Admin Компилятор разрешает использовать операторные скобки в короткой форме описания процедуры. Это так и задумано?

##
// ОК?
procedure p := begin exit end;

// Правильная ошибка: "Встречено 'begin', а ожидалось выражение"
function f := begin exit end; 

Это в первую очередь можно чтоб такой синтаксис был доступен:

##

procedure p1 :=
try
  
except
  
end;

procedure p2 :=
lock nil do
begin
  
end;

Компилятору не важно какой из типов операторных скобок использован в качестве тела - try-end, begin-end, или даже одиночный оператор как := или lock.

begin-end можно запретить отдельно на уровне семантики но… Зачем? ИМО он там просто не мешает.

Наоборот, было бы замечательно если бы поведение функций тут привели к тому что работает в процедурах

function f1 {: integer} :=
lock nil do
begin
  var i := 5;
  Result := i;
end;

Ну или хотя бы lock-выражение по аналогии с if-выражением… Я уже давно прошу, потому что это сделало бы код значительно читабельнее чем это:

function f1: integer;
begin
  lock nil do
  begin
    var i := 5;
    Result := i;
  end;
end;

Формат короткого описания процедур - procedure имя := оператор

Так что да - вполне - разрешает. Странно конечно так писать.

У функций - другое дело:

function имя := выражение

1 лайк

@admin ребят, а что с сайтом?

Да, увидели - исправили. Если еще где есть - пишите

У меня всё ещё показывает, но теперь на строчку ниже.

Не было этого, следовательно, добавлено уже после удаления предыдущего. Стало быть, или дыра есть какая-то в безопасности, или у кого-то постороннего доступ имеется.

1 лайк
  1. Сделайте поддержку тем: далеко не всем нравится светлая тема. И сделать не только выбор уже готовой темы, а возможность изменять каждый её параметр.
  2. Почему невозможно закрыть один единственный файл или целиком весь проект? Или сделайте хотя бы так, чтобы при открытии нового файла или проекта, система предлагала бы закрыть уже существующие.

Вы не первый с этой идеей. Сто раз уже отвечали, что с IDE большие проблемы. Присоединяйтесь к проекту и делайте… Вам потом спасибо скажут все, желающие темные темы.

1 лайк

Ссыль на исходный код.

3 лайка

Ещё справка хорошая нужна…

uses Robot;
begin
  Task('cc5');
  var Зигзаг := Right*13 + Down + Left*13 + Down;
  Run(Зигзаг*4);
end.

попробовал это с помощью справки разобрать и проблемы…

Не нашёл в справке процедуру Run. Операцию возведения в степень ** тоже… Может справку дополнить.

ИМО описания Run в анализаторе кода вполне достаточно.
image
Ну и реализации, которую можно увидеть, Ctrl+тыкнув на него.

** это операция. В приоритете операций она есть, но в разделе арифметических операций стОит всё же указать. @Admin?

Откуда про это вообще можно узнать как не из справки? Язык крут, но что он умеет? Понятно что допиливать язык интереснее чем писать справку, но куда без неё. Вы придумали, а мы телепаты? В справке нужны примеры. Детям очень нужны…

4 лайка

Подобный вопрос возникал когда я одному учителю показал ##. Ему понравилось отсутствие begin-end, но он не смог найти инфу в справке и в итоге (пока) отказался от продвижения этого в школе. Кроме того, константы всё ещё нельзя определять внутри блока, что не позволяет учителям и школьникам быстро перейти с доисторического паскаля на современный.