3. Listado alfabético de todas las rutinas

 

?

Sintaxis: ? x
Descripción:
Es la forma abreviada de: pretty_print(1, x, {}) - es decir, de imprimir el valor de una expresión en la salida estándar, con llaves y sangría para mostrar la estructura.
Ejemplo:
? {1, 2} + {3, 4}  -- mostrará {4, 6}

Ver también: pretty_print, print

abort

Sintaxis: abort(i)
Descripción:
Aborta la ejecución de un programa. El argumento 'i' es un entero pequeño para devolver el estado al sistema operativo. Un valor 0 generalmente indica la terminación exitosa del programa. Otros valores pueden indicar distintos tipos de errores. Los programas por lotes DOS (.bat) pueden leer este valor usando la función errorlevel. Un programa Euphoria puede leer este valor usando system_exec().
Comentarios:
abort() es útil cuando un programa está ejecutando llamadas subrutinas anidadas y es necesario terminar la ejecución inmediatamente, tal vez debido a la detección de un error severo.

Si no se usa abort(), ex.exe/exw.exe/exu terminarán devolviendo normalmente el código de estado 0. Si el programa falla debido a un error en tiempo de compilación o ejecución detectado por Euphoria, entonces el código de estado de terminación será 1.

Ejemplo:
if x = 0 then
    puts(ERR, "No se puede dividir por 0 !!!\n")
    abort(1)
else
    z = y / x
end if

Ver también: crash_message, system_exec

all_palette

Plataforma: DOS32
Sintaxis: include graphics.e
all_palette(s)
Descripción:
Especifica nuevas intensidades de color para un conjunto entero de colores en el modo gráfico en uso. 's' es una secuencia de la forma:

{{r,g,b}, {r,g,b}, ..., {r,g,b}}*

Cada elemento especifica una nueva intensidad de color {red, green, blue}* para el número de color correspondiente, comenzando por el número de color 0. Los valores para rojo, verde y azul tienen que estar dentro del rango 0 a 63.

* La terna {r,g,b}={red, green, blue} tal como se la conoce en inglés es {rojo, verde, azul} en español.

Comentarios:
Esta rutina se ejecuta mucho más rápido que si se usa palette() para establecer las nuevas intensidades de los colores uno por uno. Este procedimiento se puede usar con read_bitmap() para mostrar rápidamente una imagen en pantalla.
Programa de ejemplo: demo\dos32\bitmap.ex
Ver también: get_all_palette, palette, read_bitmap, video_config, graphics_mode

allocate

Sintaxis: include machine.e
a = allocate(i)
Descripción:
Asigna 'i' bytes contiguos de memoria. Devuelve la dirección del bloque de memoria, o devuelve 0 si no la pudo asignar. La dirección devuelta será de al menos 4 bytes alineados.
Comentarios:
Al terminar de usar el bloque, debería pasar su dirección a free(). Esta función liberará el bloque y dejará la memoria disponible para otros usos. Euphoria no liberará o reusará su bloque hasta que se llame explícitamente a free(). Cuando termina su programa, el sistema operativo reclamará toda la memoria para usarla con otros programas.
Ejemplo:
buffer = allocate(100)
for i = 0 to 99 do
    poke(buffer+i, 0)
end for

Ver también: free, allocate_low, peek, poke, call

allocate_low

Plataforma: DOS32
Sintaxis: include machine.e
i2 = allocate_low(i1)
Descripción:
Asigna 'i1' bytes contiguos de memoria baja, es decir memoria convencional (direcciones por debajo de 1 Mb). Devuelve la dirección del bloque de memoria, o devuelve 0 si no la pudo asignar.
Comentarios:
Algunas interrupciones de software de DOS requieren que les pase una o más direcciones en registros. Esas direcciones tienen que estar dentro de las direcciones de la memoria convencional para que DOS sea capaz de leerlas o escribir en ellas.
Programa de ejemplo: demo\dos32\dosint.ex
Ver también: dos_interrupt, free_low, allocate, peek, poke

allocate_string

Sintaxis: include machine.e
a = allocate_string(s)
Descripción:
Asigna espacio para una secuencia de cadena 's'. Copia 's' dentro de este espacio, junto con el caracter 0 de terminación. Este es el formato esperado por las cadenas de C. Se devuelve la dirección de memoria de la cadena. Si no hay suficiente memoria disponible, se devuelve 0.
Comentarios: Para liberar la cadena, use free().
Ejemplo:
atom titulo

titulo = allocate_string("El Mago de Oz")
Programa de ejemplo: demo\win32\window.exw
Ver también: allocate, free

allow_break

Sintaxis: include file.e
allow_break(i)
Descripción:
Cuando 'i' valga 1 (verdadero), Ctrl+C y Ctrl+Break pueden terminar el programa, cuando intenta leer la entrada desde el teclado. Si 'i' vale 0 (falso), no se podrá terminar el programa con Ctrl+C o Ctrl+Break.
Comentarios:
El DOS mostrará ^C en pantalla, aún cuando no se pueda terminar el programa.

Inicialmente, el programa se puede terminar el programa en cualquier punto, donde intente leer una entrada desde el teclado. También podría terminarse mediante otra operación de E/S, dependiendo de las opciones que el usuario haya establecido en el archivo config.sys. (Consultar el manual de MS-DOS para el caso del comando BREAK). En algunos programas, esta terminación abrupta podría dejar cosas en un estado desordenado que podría provocar la pérdida de datos. allow_break(0) le permite evitar esta situación.

Se puede saber si el usuario presionó Ctrl+C o Ctrl+Break, llamando a check_break().

Ejemplo:
allow_break(0)  -- no permita que el usuario me aniquile!

Ver también: check_break

and_bits

Sintaxis: x3 = and_bits(x1, x2)
Descripción:
Ejecuta la operación lógica AND sobre los bits correspondientes en 'x1' y 'x2'. El bit en 'x3' será 1 solamente si los bits correspondientes en 'x1' y 'x2' son ambos 1.
Comentarios:
Los argumentos de esta función pueden ser átomos o secuencias. Se aplican las reglas para operaciones sobre secuencias.

Los argumentos se tienen que poder representar como números de 32 bits, sean con o sin signo.

Si intenta manipular valores de 32 bits completos, debería declarar sus variables como átomos, en lugar de enteros. El tipo entero de Euphoria está limitado a 31 bits.

Los resultados se tratan como números con signo. Serán negativos cuando el bit de mayor orden sea 1.

Para comprender la representación binaria de un número debería mostrarlo en notación hexadecimal. Para ello, use el formato %x de printf().

Ejemplo 1:
a = and_bits(#0F0F0000, #12345678)
-- a es #02040000
Ejemplo 2:
a = and_bits(#FF, {#123456, #876543, #2211})
-- a es {#56, #43, #11}

Ejemplo 3:
a = and_bits(#FFFFFFFF, #FFFFFFFF)
-- a es -1
-- Observe que #FFFFFFFF es un número positivo,
-- pero el resultado en una operación lógica bit a bit se interpreta
-- como un número con signo de 32 bits, por lo tanto es negativo.
Ver también: or_bits, xor_bits, not_bits, int_to_bits

append

Sintaxis: s2 = append(s1, x)
Descripción:
Crea una nueva secuencia idéntica a 's1', pero con 'x' agregado al final como último elemento. La longitud de 's2' será length(s1) + 1.
Comentarios: Si 'x' es un átomo, esto es equivalente a s2 = s1 & x, si 'x' es una secuencia, no.

El almacenamiento adicional se asigna automáticamente y en forma muy eficiente, debido a la asignación dinámica de memoria de Euphoria. El caso donde 's1' y 's2' son la misma variable (como en el Ejemplo 1) está altamente optimizado.

Ejemplo 1: Puede usar append() para hacer crecer una secuencia dinámicamente, por ejemplo:
sequence x

x = {}
for i = 1 to 10 do
    x = append(x, i)
end for
-- x ahora es {1,2,3,4,5,6,7,8,9,10}
Ejemplo 2: Se puede agregar cualquier tipo de objeto de Euphoria a una secuencia, por ejemplo:
sequence x, y, z

x = {"juan", "pedro"}
y = append(x, "maría")
-- y ahora es {"juan", "pedro", "maría"}

z = append(append(y, "laura"), {"bum", "bum"})
-- z ahora es {"juan", "pedro", "maría", "laura", {"bum", "bum"}}
Ver también: prepend, concatenation operator &, sequence-formation operator

arccos

Sintaxis: include misc.e
x2 = arccos(x1)
Descripción: Devuelve un ángulo cuyo coseno es igual a 'x1'.
Comentarios: El argumento 'x1' tiene que estar en el rango -1 a +1 inclusive.

Se devolverá un valor entre 0 y PI radianes.

Esta función se puede aplicar a un átomo o a todos los elementos de una secuencia.

arccos() no es tan rápido como arctan().

Ejemplo:
s = arccos({-1,0,1})
-- s es {3.141592654, 1.570796327, 0}

Ver también: cos, arcsin, arctan

arcsin

Sintaxis: include misc.e
x2 = arcsin(x1)
Descripción: Devuelve un ángulo cuyo seno es igual a 'x1'.
Comentarios: El argumento 'x1' tiene que estar en el rango -1 a +1 inclusive.

Se devolverá un valor entre -PI/2 y +PI/2 (radianes).

Esta función se puede aplicar a un átomo o a todos los elementos de una secuencia.

arcsin() no es tan rápido como arctan().

Ejemplo:
s = arcsin({-1,0,1})
-- s es {-1.570796327, 0, 1.570796327}
Ver también: sin, arccos, arctan

arctan

Sintaxis: x2 = arctan(x1)
Descripción: Devuelve un ángulo cuyo tangente es igual a 'x1'.
Comentarios: Se devolverá un valor entre -PI/2 y +PI/2 (radianes).

Esta función se puede aplicar a un átomo o a todos los elementos de una secuencia.

arctan() es más rápida que arcsin() o arccos().

Ejemplo:
s = arctan({1,2,3})
-- s es {0.785398, 1.10715, 1.24905}

Ver también: tan, arcsin, arccos

atom

Sintaxis: i = atom(x)
Descripción: Devuelve 1 si 'x' es un átomo, 0 en caso contrario.
Comentarios:
Sirve para definir el tipo átomo. También puede llamarla como una función ordinaria para determinar si un objeto es un átomo.
Ejemplo 1:
atom a
a = 5.99

Ejemplo 2:
object line

line = gets(0)
if atom(line) then
    puts(SCREEN, "fin del archivo\n")
end if
Ver también: sequence, object, integer, atoms and sequences

atom_to_float32

Sintaxis: include machine.e
s = atom_to_float32(a1)
Descripción:
Convierte un átomo de Euphoria en una secuencia de 4 valores de un byte. Esos 4 bytes contienen la representación de un número de punto flotante IEEE en formato de 32 bits.
Comentarios:
Los átomos de Euphoria puden tener valores que son números de punto flotante IEEE de 64 bits, por lo tanto puede perder precisión al convertirlos a 32 bits (16 dígitos significativos contra 7). El rango del exponente es mucho más grande en el formato de 64 bits (10e308, contra 10e38), por lo que algunos átomos pueden ser demasiado grandes o demasiado pequeños para representarlos en 32 bits. En este caso, obtendrá uno de los valores especiales de 32 bits: inf o -inf (infinito o -infinito). Para evitar esto, puede usar atom_to_float64().

Los valores enteros se convertirán también al formato de punto flotante de 32 bits.

Ejemplo:
fn = open("numeros.dat", "wb")
puts(fn, atom_to_float32(157.82)) -- escribe 4 bytes a un archivo
Ver también: atom_to_float64, float32_to_atom

atom_to_float64

Sintaxis: include machine.e
s = atom_to_float64(a1)
Descripción:
Convierte un átomo de Euphoria en una secuencia de 8 valores de un byte. Esos 8 bytes contienen la representación de un número de punto flotante IEEE en formato de 64 bits.
Comentarios:
Todos los átomos Euphoria tiene valores que se pueden representar como números IEEE de punto flotante de 64 bits, por lo que puede convertir cualquier átomo al formato de 64 bits sin perder precisión.

Los valores enteros se convertirán también al formato de punto flotante de 64 bits.

Ejemplo:
fn = open("numeros.dat", "wb")
puts(fn, atom_to_float64(157.82)) -- escribe 8 bytes a un archivo
Ver también: atom_to_float32, float64_to_atom

bits_to_int

Sintaxis: include machine.e
a = bits_to_int(s)
Descripción:
Convierte una secuencia de valores binarios (1 y 0) a un número positivo. El bit menos significativo es s[1].
Comentarios:
Si imprime 's', los bits aparecerán en orden inverso, pero es conveniente para tener índices crecientes que le den acceso a los bits en orden ascendente de significación.
Ejemplo:
a = bits_to_int({1,1,1,0,1})
-- a es 23 (binario 10111)
Ver también: int_to_bits, operations on sequences

bk_color

Sintaxis: include graphics.e
bk_color(i)
Descripción:
Establece el color de fondo a uno de los 16 colores estándares. En los modos gráficos de píxel la pantalla entera se afectará inmediatamente. En los modos de texto cualquier nuevo caracter que imprima tendrá el nuevo color de fondo.
Comentarios: Los 16 colores estándares están definidos en graphics.e

En los modos gráficos de píxel, el color 0 que normalmente es NEGRO, será establecido al mismo valor {r,g,b}de paleta que el número de color 'i'.

En algunos modos gráficos de píxel, hay un color de borde que aparece en los extremos de la pantalla. En los modos de 256 colores, este es el 17º color en la paleta. Puede controlarlo como lo hace con cualquier otro color.

En los modos de texto, para recuperar el color de fondo original cuando termina su programa, por ejemplo 0 - NEGRO, tiene que llamar a bk_color(0). Si el cursor está en la última línea de la pantalla, tiene que imprimir algo antes de terminar su programa. Un '\n' puede ser suficiente.

Ejemplo:
bk_color(BLACK)

Ver también: text_color, palette

bytes_to_int

Sintaxis: include machine.e
a = bytes_to_int(s)
Descripción:
Convierte una secuencia de 4 elementos de valores byte en un átomo. Los elementos de 's' están en el orden esperado por un entero de 32 bits en el 386+, es decir, el byte menos significativo primero.
Comentarios:
El resultado podría ser mayor que lo que permite el tipo entero, por eso tiene que asignarlo a un átomo.

's' normalmente podría contener valores positivos que se pueden haber leido usando peek() desde 4 posiciones consecutivas de memoria.

Ejemplo:
atom int32

int32 = bytes_to_int({37,1,0,0})
-- int32 es 37 + 256*1 = 293
Ver también: int_to_bytes, bits_to_int, peek, peek4s, peek4u, poke

 

... continua
 
A a B   |   C a D   |   E a G   |   H a O   |   P a R   |   S a T   |   U a Z