Учебники

Эйфория — Последовательности

Последовательность представлена ​​списком объектов в скобках {}, разделенных запятыми. Последовательность может содержать как атомы, так и другие последовательности. Например —

{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"

Это дает следующий результат —