diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index d6f7ff436..7e635ed2a 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -15,7 +15,7 @@ internal static class RevisionClass public const string Major = "3"; public const string Minor = "9"; public const string Build = "0"; - public const string Revision = "3432"; + public const string Revision = "3434"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index 497ea3f3c..10ecd20c2 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ %COREVERSION%=0 -%REVISION%=3432 +%REVISION%=3434 %MINOR%=9 %MAJOR%=3 diff --git a/Localization/DefaultLang.resources b/Localization/DefaultLang.resources index 850e535e2..8d77056bf 100644 Binary files a/Localization/DefaultLang.resources and b/Localization/DefaultLang.resources differ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array of T.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array of T.html index 0a39fa3b7..77d8b9b59 100644 --- a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array of T.html +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array of T.html @@ -145,14 +145,22 @@
        Возвращает срез массива от индекса from с шагом step длины не более count procedure Sort<T>(Self: array of T);
        Сортирует массив по возрастанию +procedure Sort(Self: array of string); +
        Сортирует массив по возрастанию procedure Sort<T>(Self: array of T; cmp: (T,T) ->integer);
        Сортирует массив по возрастанию, используя cmp в качестве функции сравнения элементов procedure Sort<T,T1>(Self: array of T; keySelector: T -> T1);
        Сортирует массив по возрастанию по ключу +procedure Sort<T>(Self: array of T; keySelector: T -> string); +
        Сортирует массив по возрастанию по ключу procedure SortDescending<T>(Self: array of T);
        Сортирует массив по убыванию +procedure SortDescending(Self: array of string); +
        Сортирует массив по убыванию procedure SortDescending<T,T1>(Self: array of T; keySelector: T -> T1);
        Сортирует массив по убыванию по ключу +procedure SortDescending<T>(Self: array of T; keySelector: T -> string); +
        Сортирует массив по убыванию по ключу procedure Transform<T>(Self: array of T; f: T->T);
        Преобразует элементы массива по заданному правилу procedure Transform<T>(Self: array of T; f: (T,integer)->T); diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for sequence of T.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for sequence of T.html index 5c6768089..3903514d0 100644 --- a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for sequence of T.html +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for sequence of T.html @@ -25,6 +25,7 @@ + @@ -109,8 +110,12 @@
        Превращает последовательность в последовательность n-ок соседних элементов function Order<T>(Self: sequence of T): sequence of T;
        Возвращает отсортированную по возрастанию последовательность +function Order(Self: sequence of string): sequence of string; +
        Возвращает отсортированную по возрастанию последовательность function OrderDescending<T>(Self: sequence of T): sequence of T;
        Возвращает отсортированную по убыванию последовательность +function OrderDescending(Self: sequence of string): sequence of string; +
        Возвращает отсортированную по убыванию последовательность function Pairwise<T>(Self: sequence of T): sequence of (T, T);
        Превращает последовательность в последовательность пар соседних элементов function Pairwise<T, Res>(Self: sequence of T; func: (T,T)->Res): sequence of Res; @@ -149,6 +154,10 @@
        Возвращает произведение элементов последовательности, спроектированных на числовое значение function Product(Self: sequence of BigInteger): BigInteger;
        Возвращает произведение элементов последовательности +function Scan<T>(Self: sequence of T; func: (T,T) -> T): sequence of T; +
        Возвращает последовательность, в которой первый элемент равен первому элементу исходной последовательности, а каждый следующий -результат применения функции func к предыдущему элементу новой последовательности и текущему элементу исходной +function Scan<T,T1>(Self: sequence of T; first: T1; func: (T1,T) -> T1): sequence of T1; +
        Возвращает последовательность, в которой первый элемент равен first, а каждый следующий -результат применения функции func к предыдущему элементу новой последовательности и текущему элементу исходной function SkipLast<T>(self: sequence of T; count: integer := 1): sequence of T;
        Возвращает последовательность без последних count элементов function Slice<T>(Self: sequence of T; from, step: integer): sequence of T; diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for array of T.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for array of T.html index aa1a159dd..5df3431a0 100644 --- a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for array of T.html +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for array of T.html @@ -51,27 +51,43 @@
        Перемешивает список случайным образом procedure Sort<T>(a: array of T);
        Сортирует динамический массив по возрастанию +procedure Sort(a: array of string); +
        Сортирует динамический массив по возрастанию procedure Sort<T>(a: array of T; cmp: (T,T)->integer);
        Сортирует динамический массив по критерию сортировки, задаваемому функцией сравнения cmp procedure Sort<T>(a: array of T; less: (T,T)->boolean);
        Сортирует динамический массив по критерию сортировки, задаваемому функцией сравнения less procedure Sort<T,TKey>(a: array of T; keySelector: T->TKey);
        Сортирует динамический массив по ключу +procedure Sort<T>(a: array of T; keySelector: T->string); +
        Сортирует динамический массив по ключу procedure Sort<T>(l: List<T>);
        Сортирует список по возрастанию +procedure Sort(var l: List<string>); +
        Сортирует список по возрастанию procedure Sort<T>(l: List<T>; cmp: (T,T)->integer);
        Сортирует список по критерию сортировки, задаваемому функцией сравнения cmp procedure Sort<T>(l: List<T>; less: (T,T)->boolean);
        Сортирует список по критерию сортировки, задаваемому функцией сравнения less procedure Sort<T,T1>(var l: List<T>; keySelector: T->T1);
        Сортирует список по возрастанию по ключу +procedure Sort<T>(var l: List<T>; keySelector: T->string); +
        Сортирует список по возрастанию по ключу procedure SortDescending<T>(a: array of T);
        Сортирует динамический массив по убыванию +procedure SortDescending(a: array of string); +
        Сортирует динамический массив по убыванию procedure SortDescending<T,T1>(var a: array of T; keySelector: T->T1);
        Сортирует динамический массив по убыванию по ключу +procedure SortDescending<T>(var a: array of T; keySelector: T->string); +
        Сортирует динамический массив по убыванию по ключу procedure SortDescending<T>(l: List<T>);
        Сортирует список по убыванию +procedure SortDescending(var l: List<string>); +
        Сортирует список по убыванию procedure SortDescending<T,T1>(var l: List<T>; keySelector: T->T1);
        Сортирует список по убыванию по ключу +procedure SortDescending<T>(var l: List<T>; keySelector: T->string); +
        Сортирует список по убыванию по ключу \ No newline at end of file diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt index 79bec13b9..7fc253f68 100644 --- a/Release/pabcversion.txt +++ b/Release/pabcversion.txt @@ -1 +1 @@ -3.9.0.3432 +3.9.0.3434 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 734c75231..efea2a432 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.9.0.3432' +!define VERSION '3.9.0.3434' diff --git a/TestSuite/CompilationSamples/PABCSystem.pas b/TestSuite/CompilationSamples/PABCSystem.pas index c1385b92e..8d03e1b84 100644 --- a/TestSuite/CompilationSamples/PABCSystem.pas +++ b/TestSuite/CompilationSamples/PABCSystem.pas @@ -10188,6 +10188,37 @@ begin end; end; +// SSM 14/3/2024 - Scan + +/// Возвращает последовательность, РІ которой первый элемент равен первому элементу РёСЃС…РѕРґРЅРѕР№ последовательности, Р° каждый следующий - +///результат применения функции func Рє предыдущему элементу РЅРѕРІРѕР№ последовательности Рё текущему элементу РёСЃС…РѕРґРЅРѕР№ +function Scan(Self: sequence of T; func: (T,T) -> T): sequence of T; extensionmethod; +begin + var e := Self.GetEnumerator; + e.MoveNext; + var s := e.Current; + yield s; + while e.MoveNext do + begin + s := func(s,e.Current); + yield s; + end; +end; + +/// Возвращает последовательность, РІ которой первый элемент равен first, Р° каждый следующий - +///результат применения функции func Рє предыдущему элементу РЅРѕРІРѕР№ последовательности Рё текущему элементу РёСЃС…РѕРґРЅРѕР№ +function Scan(Self: sequence of T; first: T1; func: (T1,T) -> T1): sequence of T1; extensionmethod; +begin + var e := Self.GetEnumerator; + var s := first; + yield s; + while e.MoveNext do + begin + s := func(s,e.Current); + yield s; + end; +end; + /// Возвращает СЃСѓРјРјСѓ элементов последовательности, спроектированных РЅР° числовое значение - РїРѕРєР° РЅРµ работает для Lst(1,2,3) {function Sum(Self: sequence of T; f: T->BigInteger): BigInteger; extensionmethod; begin diff --git a/bin/Lib/PABCSystem.pas b/bin/Lib/PABCSystem.pas index c1385b92e..8d03e1b84 100644 --- a/bin/Lib/PABCSystem.pas +++ b/bin/Lib/PABCSystem.pas @@ -10188,6 +10188,37 @@ begin end; end; +// SSM 14/3/2024 - Scan + +/// Возвращает последовательность, РІ которой первый элемент равен первому элементу РёСЃС…РѕРґРЅРѕР№ последовательности, Р° каждый следующий - +///результат применения функции func Рє предыдущему элементу РЅРѕРІРѕР№ последовательности Рё текущему элементу РёСЃС…РѕРґРЅРѕР№ +function Scan(Self: sequence of T; func: (T,T) -> T): sequence of T; extensionmethod; +begin + var e := Self.GetEnumerator; + e.MoveNext; + var s := e.Current; + yield s; + while e.MoveNext do + begin + s := func(s,e.Current); + yield s; + end; +end; + +/// Возвращает последовательность, РІ которой первый элемент равен first, Р° каждый следующий - +///результат применения функции func Рє предыдущему элементу РЅРѕРІРѕР№ последовательности Рё текущему элементу РёСЃС…РѕРґРЅРѕР№ +function Scan(Self: sequence of T; first: T1; func: (T1,T) -> T1): sequence of T1; extensionmethod; +begin + var e := Self.GetEnumerator; + var s := first; + yield s; + while e.MoveNext do + begin + s := func(s,e.Current); + yield s; + end; +end; + /// Возвращает СЃСѓРјРјСѓ элементов последовательности, спроектированных РЅР° числовое значение - РїРѕРєР° РЅРµ работает для Lst(1,2,3) {function Sum(Self: sequence of T; f: T->BigInteger): BigInteger; extensionmethod; begin diff --git a/bin/Lib/PABCSystem.xml b/bin/Lib/PABCSystem.xml index 940ba640c..0f1f680ec 100644 --- a/bin/Lib/PABCSystem.xml +++ b/bin/Lib/PABCSystem.xml @@ -3101,6 +3101,22 @@ Возвращает последовательность частичных СЃСѓРјРј элементов последовательности + + Возвращает последовательность, РІ которой первый элемент равен первому элементу РёСЃС…РѕРґРЅРѕР№ последовательности, Р° каждый следующий - +результат применения функции func Рє предыдущему элементу РЅРѕРІРѕР№ последовательности Рё текущему элементу РёСЃС…РѕРґРЅРѕР№ + + + Возвращает последовательность, РІ которой первый элемент равен первому элементу РёСЃС…РѕРґРЅРѕР№ последовательности, Р° каждый следующий - +результат применения функции func Рє предыдущему элементу РЅРѕРІРѕР№ последовательности Рё текущему элементу РёСЃС…РѕРґРЅРѕР№ + + + Возвращает последовательность, РІ которой первый элемент равен first, Р° каждый следующий - +результат применения функции func Рє предыдущему элементу РЅРѕРІРѕР№ последовательности Рё текущему элементу РёСЃС…РѕРґРЅРѕР№ + + + Возвращает последовательность, РІ которой первый элемент равен first, Р° каждый следующий - +результат применения функции func Рє предыдущему элементу РЅРѕРІРѕР№ последовательности Рё текущему элементу РёСЃС…РѕРґРЅРѕР№ + Возвращает СЃСѓРјРјСѓ элементов последовательности diff --git a/bin/PascalABCNET.chm b/bin/PascalABCNET.chm index 553790194..c626716ab 100644 Binary files a/bin/PascalABCNET.chm and b/bin/PascalABCNET.chm differ