Programming Taskbook 0
Download 1.62 Mb. Pdf ko'rish
|
Abramyan-Pascal2016-1
- Bu sahifa navigatsiya:
- ToLinkedList
Экспортирование
Методы sequence of T ToArray: array of T Глава 4. Запросы 89 ToList: List ToDictionary(keySel: T -> TKey): Dictionary ToDictionary(keySel: T -> TKey; valueSel: T -> TVal): Dictionary ToLookup(keySel: T -> TKey): ILookup ToLookup(keySel: T -> TKey; valueSel: T -> TVal): ILookup * ToLinkedList: LinkedList * ToHashSet: HashSet * ToSortedSet: SortedSet С применением перечисленных запросов последовательность sequence of T может быть преобразована в следующие структуры данных: • динамический массив array of T, • список на базе массива List • словарь Dictionary • таблица просмотра ILookup • двусвязный список LinkedList • множество на базе хеш-таблицы HashSet • отсортированное множество SortedSet С динамическими массивами мы уже знакомы; остальные структуры (кроме таблицы просмотра) рассматриваются в следующем выпуске насто- ящей серии — см. [1, гл. 2–4]. Таблица просмотра редко создается в про- граммах в явном виде; она используется во внутренней реализации запро- сов объединения (см. п. 4.4) для повышения их эффективности. Для большинства экспортирующих запросов параметры не требуются. Исключение составляют запросы для преобразования в словарь и таблицу просмотра. Это объясняется тем, что данные структуры связывают с каж- дым своим элементом особую характеристику — ключ, и поэтому при ука- занном преобразовании необходимо определить лямбда-выражение keySel (селектор ключа), позволяющее по элементу исходной последовательности получить связанный с ним ключ (при создании словаря необходимо, чтобы все элементы последовательности имели уникальные ключи; при создании таблицы просмотра ключи элементов могут совпадать). При создании сло- варя или таблицы просмотра можно дополнительно указать лямбда-выра- жение valueSel (селектор значения) которое будет преобразовывать эле- мент исходной последовательности перед его добавлением в словарь или таблицу просмотра в качестве значения, т. е. второго элемента пары «ключ–значение». Вместо любого запроса экспортирования, не имеющего параметров, можно использовать так называемую короткую функцию, выполняющую 90 аналогичное преобразование (эпитет «короткая» объясняется краткостью имен этих функций): function Arr(a: sequence of T): array of T function Lst(a: sequence of T): List function LLst(a: sequence of T): LinkedList function HSet(a: sequence of T): HashSet function SSet(a: sequence of T): SortedSet Удобство коротких функций заключается в том, что в качестве их па- раметров можно указывать не только последовательность, но и любое ко- личество параметров типа T. К этой категории можно отнести и функцию Seq для генерации последовательности, которая нами уже неоднократно использовалась. Имеется также короткая функция Dict для генерации сло- варя, но она требует использования параметров специального типа. Для генерации элементов словаря (пар «ключ–значение») предназначена ко- роткая функция KV. Обе эти функции описываются в [1, п. 4.2]. Нам осталось рассмотреть немногочисленную группу вспомогатель- ных запросов. Download 1.62 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling