From d61d7fe017ce0b87aa72f461bb931fb2fac0fa81 Mon Sep 17 00:00:00 2001
From: Mikhalkovich Stanislav
Date: Sun, 14 Apr 2024 20:15:34 +0300
Subject: [PATCH] =?UTF-8?q?Zip=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BE=20Zi?=
=?UTF-8?q?pTuple?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Configuration/GlobalAssemblyInfo.cs | 2 +-
Configuration/Version.defs | 2 +-
.../Operations_Expressions/bitop.html | 6 ++++
Release/pabcversion.txt | 2 +-
ReleaseGenerators/PascalABCNET_version.nsh | 2 +-
TestSuite/CompilationSamples/PABCSystem.pas | 32 ++++++++++++++++++-
bin/Lib/PABCSystem.pas | 32 ++++++++++++++++++-
bin/Lib/PABCSystem.xml | 9 ++++++
8 files changed, 81 insertions(+), 6 deletions(-)
diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs
index 75ecb78db..05e98a972 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 = "3454";
+ public const string Revision = "3456";
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 5d0522ed2..9173e33c4 100644
--- a/Configuration/Version.defs
+++ b/Configuration/Version.defs
@@ -1,4 +1,4 @@
%COREVERSION%=0
-%REVISION%=3454
+%REVISION%=3456
%MINOR%=9
%MAJOR%=3
diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/bitop.html b/PABCNetHelp/LangGuide/Operations_Expressions/bitop.html
index fc97a5198..938c076d3 100644
--- a/PABCNetHelp/LangGuide/Operations_Expressions/bitop.html
+++ b/PABCNetHelp/LangGuide/Operations_Expressions/bitop.html
@@ -42,6 +42,10 @@
( ).
+ not, and, or xor .
+ ,
+ .
+
shl
shr :
@@ -70,6 +74,8 @@ a shr n
3=112, 2 112 11002=12,
12=11002 2 112=3.
+ shl shr .
+
diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt
index 0b7bec0c7..76bc8c026 100644
--- a/Release/pabcversion.txt
+++ b/Release/pabcversion.txt
@@ -1 +1 @@
-3.9.0.3454
+3.9.0.3456
diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh
index 334a394ca..d3aee5090 100644
--- a/ReleaseGenerators/PascalABCNET_version.nsh
+++ b/ReleaseGenerators/PascalABCNET_version.nsh
@@ -1 +1 @@
-!define VERSION '3.9.0.3454'
+!define VERSION '3.9.0.3456'
diff --git a/TestSuite/CompilationSamples/PABCSystem.pas b/TestSuite/CompilationSamples/PABCSystem.pas
index 9706bd11f..bc55cffb7 100644
--- a/TestSuite/CompilationSamples/PABCSystem.pas
+++ b/TestSuite/CompilationSamples/PABCSystem.pas
@@ -10866,7 +10866,37 @@ begin
raise new System.ArgumentNullException('b');
if c = nil then
raise new System.ArgumentNullException('c');
- Result := Self.Zip(a, (x, y)-> (x, y)).Zip(b, (p, z)-> (p[0], p[1], z)).Zip(c, (p, z)-> (p[0], p[1], p[2], z));
+ Result := Self.Zip(a, (x, y)-> (x, y)).Zip(b, (p, z) -> (p[0], p[1], z)).Zip(c, (p, z) -> (p[0], p[1], p[2], z));
+end;
+
+/// Объединяет две последовательности в последовательность двухэлементных кортежей
+function Zip(Self: sequence of T; a: sequence of T1): sequence of (T, T1); extensionmethod;
+begin
+ if a = nil then
+ raise new System.ArgumentNullException('a');
+ Result := Self.Zip(a, (x, y) -> (x, y));
+end;
+
+/// Объединяет три последовательности в последовательность трехэлементных кортежей
+function Zip(Self: sequence of T; a: sequence of T1; b: sequence of T2): sequence of (T, T1, T2); extensionmethod;
+begin
+ if a = nil then
+ raise new System.ArgumentNullException('a');
+ if b = nil then
+ raise new System.ArgumentNullException('b');
+ Result := Self.Zip(a, (x, y) -> (x, y)).Zip(b, (p, z) -> (p[0], p[1], z));
+end;
+
+/// Объединяет четыре последовательности в последовательность четырехэлементных кортежей
+function Zip(Self: sequence of T; a: sequence of T1; b: sequence of T2; c: sequence of T3): sequence of (T, T1, T2, T3); extensionmethod;
+begin
+ if a = nil then
+ raise new System.ArgumentNullException('a');
+ if b = nil then
+ raise new System.ArgumentNullException('b');
+ if c = nil then
+ raise new System.ArgumentNullException('c');
+ Result := Self.Zip(a, (x, y) -> (x, y)).Zip(b, (p, z) -> (p[0], p[1], z)).Zip(c, (p, z) -> (p[0], p[1], p[2], z));
end;
/// Разъединяет последовательность двухэлементных кортежей на две последовательности. Реализуется двухпроходным алгоритмом
diff --git a/bin/Lib/PABCSystem.pas b/bin/Lib/PABCSystem.pas
index 9706bd11f..bc55cffb7 100644
--- a/bin/Lib/PABCSystem.pas
+++ b/bin/Lib/PABCSystem.pas
@@ -10866,7 +10866,37 @@ begin
raise new System.ArgumentNullException('b');
if c = nil then
raise new System.ArgumentNullException('c');
- Result := Self.Zip(a, (x, y)-> (x, y)).Zip(b, (p, z)-> (p[0], p[1], z)).Zip(c, (p, z)-> (p[0], p[1], p[2], z));
+ Result := Self.Zip(a, (x, y)-> (x, y)).Zip(b, (p, z) -> (p[0], p[1], z)).Zip(c, (p, z) -> (p[0], p[1], p[2], z));
+end;
+
+/// Объединяет две последовательности в последовательность двухэлементных кортежей
+function Zip(Self: sequence of T; a: sequence of T1): sequence of (T, T1); extensionmethod;
+begin
+ if a = nil then
+ raise new System.ArgumentNullException('a');
+ Result := Self.Zip(a, (x, y) -> (x, y));
+end;
+
+/// Объединяет три последовательности в последовательность трехэлементных кортежей
+function Zip(Self: sequence of T; a: sequence of T1; b: sequence of T2): sequence of (T, T1, T2); extensionmethod;
+begin
+ if a = nil then
+ raise new System.ArgumentNullException('a');
+ if b = nil then
+ raise new System.ArgumentNullException('b');
+ Result := Self.Zip(a, (x, y) -> (x, y)).Zip(b, (p, z) -> (p[0], p[1], z));
+end;
+
+/// Объединяет четыре последовательности в последовательность четырехэлементных кортежей
+function Zip(Self: sequence of T; a: sequence of T1; b: sequence of T2; c: sequence of T3): sequence of (T, T1, T2, T3); extensionmethod;
+begin
+ if a = nil then
+ raise new System.ArgumentNullException('a');
+ if b = nil then
+ raise new System.ArgumentNullException('b');
+ if c = nil then
+ raise new System.ArgumentNullException('c');
+ Result := Self.Zip(a, (x, y) -> (x, y)).Zip(b, (p, z) -> (p[0], p[1], z)).Zip(c, (p, z) -> (p[0], p[1], p[2], z));
end;
/// Разъединяет последовательность двухэлементных кортежей на две последовательности. Реализуется двухпроходным алгоритмом
diff --git a/bin/Lib/PABCSystem.xml b/bin/Lib/PABCSystem.xml
index 39d14ae31..59cf9c273 100644
--- a/bin/Lib/PABCSystem.xml
+++ b/bin/Lib/PABCSystem.xml
@@ -3219,6 +3219,15 @@
Объединяет четыре последовательности в последовательность четырехэлементных кортежей
+
+ Объединяет две последовательности в последовательность двухэлементных кортежей
+
+
+ Объединяет три последовательности в последовательность трехэлементных кортежей
+
+
+ Объединяет четыре последовательности в последовательность четырехэлементных кортежей
+
Разъединяет последовательность двухэлементных кортежей на две последовательности. Реализуется двухпроходным алгоритмом