Ошибки на сайте, в справке и прочее

Спасибо за совет.

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

Я имел в виду - исправьте заголовок темы

Думаю, что есть смысл закрепить эту тему.

  1. @Admin, у Вас в справке где-нибудь сказано про & для экранирования ключевых слов?

  2. В разделе про комментарии я не нашёл, что где-нибудь бы было сказано о том, что вложенные комментарии одного вида запрещены:

    begin { {} } end.

. Во всяком случае в глазах начинающих это выглядело бы как недоработка, нежели как ограничение, так как об этом не сказано в справке. Единственное по этой теме:

Комментарии разных типов могут быть вложенными:

, но про вложенность комментариев одного вида ничего не сказано.

1 лайк

33 сообщения перенесены в тему Болталка PascalABC.NET

Ошибка не исправлена.

1 лайк

Вы неправы в том, что концентрируетесь на внутреннем представлении кортежей. И Вас это занимает более чем то, для чего кортежи предназначены. А предназначены они для того чтобы быть контейнером для полей разных типов. Как записи или классы. Независимо от внутреннего представления.

Кроме того, я уже говорил, что прошу не замусоривать issue вопросами о справке по языку.

2 лайка

Моё личное дело на чем концентрироваться. Если Вам это не нравиться - Ваше дело. Я Вас за это не осуждаю.

Предназначение, конечно, неизменно от того класс это или запись, но упоминать что они из себя представляют в плане реализации важно, хотя бы потому, что из этого можно сделать вывод как их стоит использовать. Большое количество объектов ссылочных типов замедлят работу приложения, нежели записей. В контексте оптимизации это полезно знать.

Акцентирование на технической части реализации не менее важно, чем общее описание структур данных.

Capture

Да, никак не реализуют нормальный анализатор кода для лямбд… Очень давно известная проблема.

Нет, тут подсказка для MatrGen не правильная. Вот что тут такое … “заполненный элементами x”? Это элементы, которые получаются на выходе функции gen(i, j) И в справке то же самое.

А… Действительно)

В чем отличие между Pos и PosEx?

begin
  var s := 'Hello Hello';
  var s0 := 'Hello';
  Pos(s0, s).Println;//1
  Pos(s0, s, 2).Println;//7
  PosEx(s0, s).Println;//1
  PosEx(s0, s, 2).Println;//7
end.

Подсказка для Pos: Pos

Подсказка для PosEx: PosEx

Но они работают одинаково. Кроме того подсказка не показывает, что параметр from - параметр по умолчанию у обеих.

Надо не на результат а на реализацию смотреть:


function Pos(subs, s: string; from: integer): integer;
begin
  if (subs = nil) or (subs.Length = 0) or (from > s.Length) then
    Result := 0
  else Result := s.IndexOf(subs, from - 1, System.StringComparison.Ordinal) + 1;
end;

function PosEx(subs, s: string; from: integer) := Pos(subs,s,from);

То есть - ни в чём.

Отличия нет, это сделано для совместимости с языками-предшественниками. Как говорили в первые годы советской власти, “тяжкое наследие царизма”.

Ошибка описания процедуры, в среде и в справке. WriteElements<T>(fname: string; ss: sequence of T);

И, кстати, почему нет встроенного одноименного метода расширения, такого:

WriteElements<T>(self: file of T; ss: sequence of T); extensionmethod;,

чтобы работал с уже открытым файлом и не перезаписывал все, а вставлял последовательность, начиная с позиции файлового указателя? Это с чем-то связано или просто забыли выписать?

Да, спасибо, исправили описание.

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

Если вам такой подход нравится, напишите свою функцию и пользуйтесь на свой страх и риск

1 лайк

@Admin

Справочник по языку>>Элементы функционального программирования>>Методы для последовательностей>>Метод Cast:

begin
  var a: sequence of integer; 
  var b: sequence of real;
  a := Seq(1,3,5);
  b := a.Cast&<real>();
end.

Этот код неправильный, если добавить вывод для b - получите ошибку, потому что integer as real не работает.

не помешало бы тут обновить инфо о версии.
да и на GitHub раздел релизов обновлять периодически или вообще удалить, что бы с толку не сбивал тоже надо по моему мнению

Кстати, в [Справка → Структура программы → Структура программы: обзор] всё ещё используется старый синтаксис в виде program и writeln(x);. При этом ничего не сказано о, например, коротких программах ## и функциях современно консольного чтения вида ReadInteger. Не то что бы это ошибка, но стоило бы как-то поменять, раз уж pabc пропагандирует свой стиль написания

1 лайк