while time() do
end while
x += 1 -- эта команда не будет давать выборок
Иногда вы можете встретить значительный процент времени, уходящий на команду return. Такое обычно случается из-за освобождения большого объёма памяти, выделенного под временные и частные переменные, используемые внутри подпрограммы. Значительное время может занимать также процесс высвобождения памяти, когда присваивается новая величина большому ряду.
Если в процесс вовлечена перекачка данных в файл памяти, вы можете увидеть большие траты времени на те команды, которым требуется доступ к дисковой памяти, таким как команды обращения к элементам большого ряда, выгруженного на диск.
...
Часть II - Библиотека подпрограмм
В этом документе вы найдёте описание множества подпрограмм. Некоторые из них встроены непосредственно в интерпретаторы ex.exe, exw.exeи exu. Другие написаны на Euphoria и, чтобы воспользоваться ими, вы должны будете включать в свою программу стандартные библиотечные .e-файлы, расположенные в каталоге euphoria\include. В этих случаях необходимый библиотечный файла указывается в графе "Синтаксис" описания подпрограммы. Конечно, библиотечный файл требует только однократного включения в вашу программу. Встроенные подпрограммы, не требующие библиотечных файлов, отображаются редактором в малиновом цвете. Вы можете переопределять эти встроенные подпрограммы, создавая свои собственные подпрограммы под теми же самыми именами. Интерпретатор предупредит вас о переопределении сообщением, вывод которого может быть вами отменён.
Чтобы показать, какой тип объектадолжен быть подан в подпрограмму или выдаётся ею, в описаниях используются следующие обозначения, непосредственно к синтаксису не относящиеся:
x
- общий объект (object) (атом или ряд)
s
- ряд (sequence)
a
- атом (atom)
i
- целое (integer)
fn
- целое (integer), используемое как номер файла
st
- символьный ряд, строка (sequence), или односимвольный атом
Некоторые подпрограммы доступны только на одной или двух из четырёх платформ. В описаниях такие подпрограммы обозначены как "Платформа: DOS32" или "Платформа: WIN32" или "Платформа: Linux". В некоторых других местах вы можете встретить пометки ( DOS32) или ( WIN32) или ( Linux). Подпрограммы, работающие на Linux, в общем случае работают и на FreeBSD. Единственное исключение относится к управлению мышью.
Если в подпрограмму будет подан аргумент с недопустимой величиной, работа вашей программы прервётся с сообщением об ошибке.
2. Предназначение подпрограмм
Предопределённые стандартные типы служат не только для объявления с ними переменных, но вы можете также вызывать их подобно обычным функциям, чтобы проверить, что переменная принадлежит к данному типу.
integer (целое)
- проверяет, что объект имеет тип integer
atom (число)
- проверяет, что объект имеет тип atom
sequence (ряд)
- проверяет, что объект имеет тип sequence
object (объект)
- проверяет, что объект имеет тип object (всегда истина)
2.2 Манипулирование рядами
length (длина)
- выдаёт длину ряда
repeat (повторить)
- повторяет элемент n раз и выдаёт ряд длины n
reverse (повернуть)
- поворачивает ряд так, что первые элементы занимают место последних
append (добавить)
- добавляет новый элемент после конца ряда
prepend (прибавить)
- прибавляет новый элемент перед началом ряда
2.3 Сравнение, поиск и сортировка
compare (сравнить)
- сравнивает два объекта
equal (равно)
- проверяет два объекта на идентичность
find (найти)
- ищет объект в ряде - начало поиска с первого элемента
find_from (найти_от)
- ищет объект в ряде - начало поиска с заданного элемента
match (сопоставить)
- ищет ряд как отрезок другого ряда - начало поиска с первого элемента
match_from (сопоставить_от)
- ищет ряд как отрезок другого ряда - начало поиска с заданного элемента
sort (сортировать)
- сортирует элементы ряда в порядке возрастания
custom_sort (сортировать_как)
- сортирует элементы ряда, основываясь на заданной вами функции сравнения
2.4 Преобразование и сопоставление образцов
lower (нижний_регистр)
Читать дальше