Последовательность представлена списком объектов в скобках {}, разделенных запятыми. Последовательность может содержать как атомы, так и другие последовательности. Например —
{2, 3, 5, 7, 11, 13, 17, 19} {1, 2, {3, 3, 3}, 4, {5, {6}}} {{"Zara", "Ayan"}, 52389, 97.25} {} -- the 0-element sequence
Один элемент последовательности можно выбрать, указав номер элемента в квадратных скобках. Номера элементов начинаются с 1.
Например, если x содержит {5, 7.2, 9, 0.5, 13}, то x [2] равно 7.2.
Предположим, что x [2] содержит {11,22,33}. Теперь, если вы попросите x [2], вы получите {11,22,33}, а если вы попросите x [2] [3], вы получите атом 33 ,
пример
#!/home/euphoria-4.0b2/bin/eui sequence x x = {1, 2, 3, 4} for a = 1 to length(x) do printf(1, "value of x[%d] = %d\n", {a, x[a]}) end for
Здесь length () — это встроенная функция, которая возвращает длину последовательности. Приведенный выше пример дает следующий результат —
value of x[1] = 1 value of x[2] = 2 value of x[3] = 3 value of x[4] = 4
Строка символов
Строка символов — это просто последовательность символов. Это может быть введено одним из двух способов —
(а) Использование двойных кавычек —
"ABCDEFG"
(б) Использование строки необработанных обозначений —
-- Using back-quotes `ABCDEFG` or -- Using three double-quotes """ABCDEFG"""
Вы можете попробовать следующий пример, чтобы понять концепцию —
#!/home/euphoria-4.0b2/bin/eui sequence x x = "ABCD" for a = 1 to length(x) do printf(1, "value of x[%d] = %s\n", {a, x[a]}) end for
Это дает следующий результат —
value of x[1] = A value of x[2] = B value of x[3] = C value of x[4] = D
Строковые массивы
Массив строк может быть реализован с использованием последовательностей следующим образом:
#!/home/euphoria-4.0b2/bin/eui sequence x = {"Hello", "World", "Euphoria", "", "Last One"} for a = 1 to length(x) do printf(1, "value of x[%d] = %s\n", {a, x[a]}) end for
Это дает следующий результат —
value of x[1] = Hello value of x[2] = World value of x[3] = Euphoria value of x[4] = value of x[5] = Last One
Эйфория Структуры
Структура может быть реализована с использованием последовательностей следующим образом:
#!/home/euphoria-4.0b2/bin/eui sequence employee = { {"John","Smith"}, 45000, 27, 185.5 } printf(1, "First Name = %s, Last Name = %s\n", {employee[1][1],employee[1][2]} )
Это дает следующий результат —
First Name = John, Last Name = Smith
Существуют различные операции, которые могут выполняться непосредственно над последовательностями. Давайте посмотрим на них подробно —
Мочевая операция
При применении к последовательности унарный оператор фактически применяется к каждому элементу в последовательности, чтобы получить последовательность результатов одинаковой длины.
#!/home/euphoria-4.0b2/bin/eui sequence x x = -{1, 2, 3, 4} for a = 1 to length(x) do printf(1, "value of x[%d] = %d\n", {a, x[a]}) end for
Это дает следующий результат —
value of x[1] = -1 value of x[2] = -2 value of x[3] = -3 value of x[4] = -4
Арифметические операции
Почти все арифметические операции могут выполняться над последовательностями следующим образом:
#!/home/euphoria-4.0b2/bin/eui sequence x, y, a, b, c x = {1, 2, 3} y = {10, 20, 30} a = x + y puts(1, "Value of a = {") for i = 1 to length(a) do printf(1, "%d,", a[i]) end for puts(1, "}\n") b = x - y puts(1, "Value of b = {") for i = 1 to length(a) do printf(1, "%d,", b[i]) end for puts(1, "}\n") c = x * 3 puts(1, "Value of c = {") for i = 1 to length(c) do printf(1, "%d,", c[i]) end for puts(1, "}\n")
Это дает следующий результат —
Value of a = {11,22,33,} Value of b = {-9,-18,-27,} Value of c = {3,6,9,}
Параметры командной строки
Пользователь может передать параметры командной строки в сценарий Euphoria, и к нему можно получить доступ в виде последовательности с помощью функции command_line () следующим образом:
#!/home/euphoria-4.0b2/bin/eui sequence x x = command_line() printf(1, "Interpeter Name: %s\n", {x[1]} ) printf(1, "Script Name: %s\n", {x[2]} ) printf(1, "First Argument: %s\n", {x[3]}) printf(1, "Second Argument: %s\n", {x[4]})
Здесь printf () — встроенная функция Euphoria. Теперь, если вы запустите этот скрипт следующим образом —
$eui test.ex "one" "two"
Это дает следующий результат —