Programming Taskbook 0
Download 1.62 Mb. Pdf ko'rish
|
Abramyan-Pascal2016-1
Глава 1. Некоторые расширения Паскаля в языке PascalABC.NET 15 Затем эту переменную можно связать с лямбда-выражением, которое принимает два целых числа и возвращает их сумму и произведение: f := (a, b) -> (a + b, a * b); Стандартные процедуры вывода PascalABC.NET Write/Writeln и Print/Println позволяют указывать кортежи в качестве своих параметров. По- ля кортежа при выводе разделяются запятыми, а весь кортеж заключается в круглые скобки. Например, можно выполнить в процедуре вывода вызов ранее определенного лямбда-выражения f: Write(f(10, 20)); В результате будет выведен следующий текст: (30,200) Два кортежа считаются имеющими один и тот же тип, если они имеют одинаковое количество полей, причем поля с одинаковыми индексами имеют одинаковые типы. Кортежи одного типа можно сравнивать не толь- ко операциями «равно»–«не равно», но и операциями «меньше»–«боль- ше»; при этом используется так называемое лексикографическое сравне- ние: вначале сравниваются значения первого поля; если они различны, то меньшим кортежем считается тот, у которого первое поле имеет меньшее значение; если первые поля совпадают, то сравниваются вторые поля, и т. д. Для кортежей предусмотрен метод Add. Вызов a.Add(b) возвращает кортеж, содержащий все поля кортежа a и дополнительное поле, которому присваивается значение b (новое поле располагается последним). Того же самого результата можно достигнуть, используя операцию + вида a + b (где первый операнд является кортежем). Таким образом, выражение (1, 2) + 3 вернет кортеж (1, 2, 3). Заметим, что выражение (1, 2) + (3, 4) тоже вернет кортеж из трех полей (1, 2, (3, 4)), поскольку второй операнд операции + (и параметр b при вызове метода a.Add(b)) всегда добавляется к кортежу в виде единственного поля. |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling