В этом документе вы найдёте описание множества подпрограмм. Некоторые из них встроены непосредственно в интерпретаторы 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. Предназначение подпрограмм
2.1 Стандартные типы
Предопределённые стандартные типы служат не только для объявления с ними переменных, но вы можете также вызывать их подобно обычным функциям, чтобы проверить, что переменная принадлежит к данному типу.
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 (нижний_регистр)
- преобразует атом или ряд к нижнему регистру
upper (верхний_регистр)
- преобразует атом или ряд к верхнему регистру
wildcard_match (искать_в_строке_с_догадками)
- сопоставляет строку с заданным образцом, содержащим символы догадок ? и *
wildcard_file (искать_имя_файла_с_догадками)
- сопоставляет имя файла с заданным образцом, содержащим символы догадок
2.5 Математика
Эти подпрограммы работают с отдельными атомами или рядами величин. См. Часть I - Ядро языка - Операции на рядах.
sqrt (корень)
- вычисляет квадратный корень объекта
rand (случайные_числа)
- выдаёт случайные числа
sin (синус)
- вычисляет синус угла
arcsin (арксинус)
- вычисляет угол для данного синуса
cos (косинус)
- вычисляет косинус угла
arccos (арккосинус)
- вычисляет угол для данного косинуса
tan (тангенс)
- вычисляет тангенс угла
arctan (арктангенс)
- вычисляет угол для данного тангенса
log (логарифм)
- вычисляет натуральный логарифм
floor (целая_часть)
- округляет вниз до ближайшего целого