Встроенные функции Флэнга
Перечисления


Обзор функций
Enumeration enum(List/Vector/String Object)
          Создает объект-перечисление, который позволяет в дальнейшем последовательно перебрать все элементы аргумента функции
Enumeration eNext(Enumeration Enum)
          выбирает следующий элемент объекта-перечисления
Object eValue(Enumeration Enum)
          Возвращает текущий элемент объекта-перечисления, не меняя его (в отличие от enumNext)
Enumeration eKeys(Hash Hash)
          Создает объект-перечисление для ключей хэш-таблицы Hash
Enumeration eValues(Hash Hash)
          Создает объект-перечисление по значениям хэш-таблицы
Enumeration eFlat(List/Vector Obj)
          Создает объект-перечисление по элементам списка (вектора) с учетом подсписков (подвекторов)
Enumeration eReader(Reader Reader)
          Порождает перечисление, перебирающее символы из входного потока
Enumeration eXML(Term XML)
          Порождает перечисление, обходящее узлы XML-терма всех типов (элементы, инструкции обработки, cdata, комментарии, текст, сущности). Узлы пространств имен в перечисление не включаются.
Enumeration eXElem(Term XML)
          Порождает перечисление, перебирающее элементы XML-терма (структуры типа xmlElem(...))
Enumeration eXElem(Term XML, String XPath)
          Порождает перечисление, перебирающее вершины XML-терма (первый аргумент), удовлетворяющие условиям, описанным в XPath-выражении (второй аргумент)
Boolean exhausted(Enumeration Enum)
          Проверяет, остались ли у аргумента, который должен быть перечислением, неперебранные элементы или нет

Описание функций

enum/1

Enumeration enum(List/Vector/String Object)
    
Создает объект-перечисление, который позволяет в дальнейшем последовательно перебрать все элементы аргумента функции Кроме данной общей функции имеются специальные функции-перечисления для хэш-таблиц и списков

Аргументы:
Object - сложный объект, элементы которого перечисляются
Подробнее...

eNext/1

Enumeration eNext(Enumeration Enum)
    
выбирает следующий элемент объекта-перечисления если значений больше нет, то возвращается null

Аргументы:
Enum - объект-перечисление, у которого берется очередной элемент
Подробнее...

eValue/1

Object eValue(Enumeration Enum)
    
Возвращает текущий элемент объекта-перечисления, не меняя его (в отличие от enumNext) Применение enumValue к только созданному объекту-перечислению даст в результате null. Чтобы выбрать первый элемент перечисления, необходимо воспользоваться функцией enumNext. Если элементы в перечислении закончились, возвращается null

Аргументы:
Enum - объект-перечисление, у которого берется текущий элемент
Подробнее...

eKeys/1

Enumeration eKeys(Hash Hash)
    
Создает объект-перечисление для ключей хэш-таблицы Hash Позволяет перебрать содержимое хэш-таблицы по ее ключам

Аргументы:
Hash - хэш-таблица, для которой создается объект-перечисление
Подробнее...

eValues/1

Enumeration eValues(Hash Hash)
    
Создает объект-перечисление по значениям хэш-таблицы

Аргументы:
Hash - хэш-таблица, значения которой перебираются
Подробнее...

eFlat/1

Enumeration eFlat(List/Vector Obj)
    
Создает объект-перечисление по элементам списка (вектора) с учетом подсписков (подвекторов) Пример. Пусть L=[[1], [2,3],[4]]. Тогда enum(L) даст следующее перечисление: [1], [2,3], [4]. eFlat(L) даст перечисление: 1,2,3,4. Аналогично действует в случае векторов, когда элементом вектора является другой вектор. Данная фукнция является основной при обработке содержимого xml-элементов, которые могут быть представлены как списками, так и векторами, причем в случае вложенных списков/векторов содержимое разворачивается в линейную последовательность.

Аргументы:
Obj - список или вектор, для которого организуется перечисление
Подробнее...

eReader/1

Enumeration eReader(Reader Reader)
    
Порождает перечисление, перебирающее символы из входного потока

Аргументы:
Reader - входящий поток, последовательность символов из которого будет перечисляться
Подробнее...

eXML/1

Enumeration eXML(Term XML)
    
Порождает перечисление, обходящее узлы XML-терма всех типов (элементы, инструкции обработки, cdata, комментарии, текст, сущности). Узлы пространств имен в перечисление не включаются.

Аргументы:
XML - xml-документ, вершины которого перебираются
Подробнее...

eXElem/1

Enumeration eXElem(Term XML)
    
Порождает перечисление, перебирающее элементы XML-терма (структуры типа xmlElem(...))

Аргументы:
XML - xml-документ, элементы которого перебираются
Подробнее...

eXElem/2

Enumeration eXElem(Term XML, String XPath)
    
Порождает перечисление, перебирающее вершины XML-терма (первый аргумент), удовлетворяющие условиям, описанным в XPath-выражении (второй аргумент) Пример: eXElem(XML, "//latex[@displaynum='#'"]) - перечисление, перебирающее все элементы XML с именем latex, содержащие атрибут displaynum, равный "#"

Аргументы:
XML - xml-терм, элементы которого перебираются
XPath - условия в формате XPath, накладываемые на вершины.
Подробнее...

exhausted/1

Boolean exhausted(Enumeration Enum)
    
Проверяет, остались ли у аргумента, который должен быть перечислением, неперебранные элементы или нет

Аргументы:
Enum - перечисление, у которого проверяется наличие оставшихся элементов
Подробнее...