Euphoria - Séquences
Une séquence est représentée par une liste d'objets entre accolades {}, séparés par des virgules. Une séquence peut contenir à la fois des atomes et d'autres séquences. Par exemple -
{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
Un seul élément d'une séquence peut être sélectionné en donnant le numéro d'élément entre crochets. Les numéros d'élément commencent à 1.
Par exemple, si x contient {5, 7,2, 9, 0,5, 13} alors x [2] vaut 7,2.
Supposons que x [2] contienne {11,22,33}, maintenant si vous demandez x [2] vous obtenez {11,22,33} et si vous demandez x [2] [3], vous obtenez l'atome 33 .
Exemple
#!/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
Ici, length () est la fonction intégrée qui renvoie la longueur de la séquence. L'exemple ci-dessus produit le résultat suivant -
value of x[1] = 1
value of x[2] = 2
value of x[3] = 3
value of x[4] = 4
Chaîne de caractères
Une chaîne de caractères est juste un sequencede personnages. Il peut être saisi de l'une des deux manières -
(a) Using Double Quotes −
"ABCDEFG"
(b) Using Raw String Notation −
-- Using back-quotes
`ABCDEFG`
or
-- Using three double-quotes
"""ABCDEFG"""
Vous pouvez essayer l'exemple suivant pour comprendre le concept -
#!/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
Cela produit le résultat suivant -
value of x[1] = A
value of x[2] = B
value of x[3] = C
value of x[4] = D
Tableaux de chaînes
Un tableau de chaînes peut être implémenté à l'aide de séquences comme suit -
#!/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
Cela produit le résultat suivant -
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
Structures euphoriques
Une structure peut être implémentée en utilisant des séquences comme suit -
#!/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]} )
Cela produit le résultat suivant -
First Name = John, Last Name = Smith
Il existe différentes opérations qui peuvent être effectuées directement sur les séquences. Voyons-les en détail -
Opération urinaire
Lorsqu'il est appliqué à une séquence, un opérateur unaire est en fait appliqué à chaque élément de la séquence pour produire une séquence de résultats de même longueur.
#!/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
Cela produit le résultat suivant -
value of x[1] = -1
value of x[2] = -2
value of x[3] = -3
value of x[4] = -4
Opérations arithmétiques
Presque toutes les opérations arithmétiques peuvent être effectuées sur des séquences comme suit -
#!/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")
Cela produit le résultat suivant -
Value of a = {11,22,33,}
Value of b = {-9,-18,-27,}
Value of c = {3,6,9,}
Options de ligne de commande
Un utilisateur peut transmettre des options de ligne de commande à un script Euphoria et il peut être consulté sous forme de séquence en utilisant command_line() fonction comme suit -
#!/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]})
Ici printf()est la fonction intégrée d'Euphoria. Maintenant, si vous exécutez ce script comme suit -
$eui test.ex "one" "two"
Cela produit le résultat suivant -
Interpeter Name: /home/euphoria-4.0b2/bin/eui
Script Name: test.ex
First Argument: one
Second Argument: two