Zip вместо ZipTuple

This commit is contained in:
Mikhalkovich Stanislav 2024-04-14 20:15:34 +03:00
parent 08c5c765b7
commit d61d7fe017
8 changed files with 81 additions and 6 deletions

View file

@ -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;

View file

@ -1,4 +1,4 @@
%COREVERSION%=0
%REVISION%=3454
%REVISION%=3456
%MINOR%=9
%MAJOR%=3

View file

@ -42,6 +42,10 @@
<p>
(операнды и результат представлены в двоичной форме).</p>
<p>
Операции not, and, or и xor предназначены для работы с беззнаковыми целыми.
Знаковые целые трактуются как беззнаковые, с этой точки зрения применеие этих
операций к знаковым целым лишено смысла.</p>
<p>
Операциии <strong><span class="auto-style1">shl</span></strong> и <strong>
<span class="auto-style1">shr</span></strong> имеют вид:</p>
<blockquote>
@ -70,6 +74,8 @@ a <strong>shr</strong> n</code>
поскольку 3=11<sub>2</sub>, после сдвига влево на 2 позиции 11<sub>2</sub> преобразуется в 1100<sub>2</sub>=12, а
12=1100<sub>2</sub> после сдвига вправо на 2 позиции преобразуется в 11<sub>2</sub>=3.</p>
<p>
Для знаковых целых операции shl и shr сохраняют знак.</p>
<p>
&nbsp;</p>
<p>
&nbsp;</p>

View file

@ -1 +1 @@
3.9.0.3454
3.9.0.3456

View file

@ -1 +1 @@
!define VERSION '3.9.0.3454'
!define VERSION '3.9.0.3456'

View file

@ -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<T, T1>(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<T, T1, T2>(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<T, T1, T2, T3>(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;
/// Разъединяет последовательность двухэлементных кортежей на две последовательности. Реализуется двухпроходным алгоритмом

View file

@ -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<T, T1>(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<T, T1, T2>(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<T, T1, T2, T3>(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;
/// Разъединяет последовательность двухэлементных кортежей на две последовательности. Реализуется двухпроходным алгоритмом

View file

@ -3219,6 +3219,15 @@
<member name="M:ZipTuple``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Collections.Generic.IEnumerable{``2},System.Collections.Generic.IEnumerable{``3})">
<summary>Объединяет четыре последовательности в последовательность четырехэлементных кортежей</summary>
</member>
<member name="M:Zip``2(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1})">
<summary>Объединяет две последовательности в последовательность двухэлементных кортежей</summary>
</member>
<member name="M:Zip``3(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Collections.Generic.IEnumerable{``2})">
<summary>Объединяет три последовательности в последовательность трехэлементных кортежей</summary>
</member>
<member name="M:Zip``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Collections.Generic.IEnumerable{``2},System.Collections.Generic.IEnumerable{``3})">
<summary>Объединяет четыре последовательности в последовательность четырехэлементных кортежей</summary>
</member>
<member name="M:UnZipTuple``2(System.Collections.Generic.IEnumerable{System.Tuple{``0,``1}})">
<summary>Разъединяет последовательность двухэлементных кортежей на две последовательности. Реализуется двухпроходным алгоритмом</summary>
</member>