Да, никак не реализуют нормальный анализатор кода для лямбд… Очень давно известная проблема.
Нет, тут подсказка для 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:
Подсказка для 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;
,
чтобы работал с уже открытым файлом и не перезаписывал все, а вставлял последовательность, начиная с позиции файлового указателя? Это с чем-то связано или просто забыли выписать?
Да, спасибо, исправили описание.
По поводу предлагаемого вами варианта - нам не хочется иметь стандартный метод, который массово пишет что-то в открытый файл с позиции указателя. С нашей точки зрения, такой подход провоцирует ошибки и не может быть включён в стандартную библиотеку.
Если вам такой подход нравится, напишите свою функцию и пользуйтесь на свой страх и риск
Справочник по языку>>Элементы функционального программирования>>Методы для последовательностей>>Метод 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 пропагандирует свой стиль написания
Да, исправили. ReadInteger есть кстати
Только у меня последнее время постоянно “дёргаются” сообщения при пролистывании форума? Как-то напрягает уже
а, ясно. такие дёрганья только если в настройках включить vincent
тему
Здесь напутано:
Исправьте, пожалуйста.
Да, исправили. В следующем обновлении выйдет
Да, исправили