Изменения в языке
Операция not in
Операция not in
является противоположной операции in
:
begin
var a := Arr(1,3,5);
if 4 not in a then
Print('отсутствует');
end.
Уточнения в языке
Явное приведение вещественного типа в целый теперь разрешено
begin
var i: integer := integer(2.7); // Ok
end.
Стандартная библиотека
Добавлены перегрузки функции Random
function Random(a, b: char): char;
function Random(diap: IntRange): integer;
function Random(diap: RealRange): real;
function Random(diap: CharRange): char;
PartialSum для числовых последовательностей
Для числовых последовательностей метод PartialSum возвраает последовательность частичных сумм:
begin
Arr(1,2,3,4).PartialSum.Println;
|1bi,2bi,3bi,4bi|.PartialSum.Println;
Arr(1,2,3,4).Select(x->x+0.5).PartialSum.Println;
end.
Вывод:
1 3 6 10
1 3 6 10
1.5 4 7.5 12
Стандартные модули
Стандартный модуль XLSX
Стандартный модуль XLSX предназначен для считывания файлов в формате XLSX.
Пример.
uses XLSX;
begin
var (lg,tv,mg) := ReadXLSX('3.xlsx').Values.ToArray;
var mgs := mg.Skip(1).Where(s->s[1]='Заречный').Select(s->s[0]).ToArray;
var tvi := tv.Where(s->'Яйцо' in s[2]).First[0];
var egg := lg.Where(s->(s[2] in mgs) and (s[3]=tvi));
var sumInc := egg.Where(s->s[5]='Поступление').Sum(s->s[4].ToInteger);
var decInc := egg.Where(s->s[5]='Продажа').Sum(s->s[4].ToInteger);
Print(sumInc, decInc, sumInc-decInc);
end.
Утилиты
Консольный компилятор pabcnetcclear
В командной строке распознаются полные имена файлов с путём, начинающимся с / (важно для Linux)