Este es el comando ffihugs que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
abrazos, abrazos, abrazos - Abrazos 98, sistema de programación funcional
SINOPSIS
abrazos [ opciones ] [ módulos ]
abrazos [ opciones ] módulo [ args ]
abrazos [ opciones ] módulo [ argumento_compilador ]
DESCRIPCIÓN
Hugs es un intérprete de Haskell, un lenguaje de programación funcional estándar no estricto.
Hugs implementa casi todo el estándar Haskell 98, excepto los recursivos mutuos.
módulos. El nombre Abrazos es un mnemónico para el Haskell Del usuario Gofer System.
El intérprete comienza a utilizar el abrazos mando. Después de procesar las opciones, carga el
módulo estándar Preludio y cualquier otro módulo listado en la línea de comando.
Cada módulo de Haskell se almacena en un archivo separado. Al cargar un módulo nombre , Abrazos
reemplaza cada `.'en nombre con un '/'y busca en cada uno de los directorios en su búsqueda
camino (ver -P bajo OPCIONES) para los archivos nombre .hs y nombre .lhs. (Los sufijos reconocidos
se puede cambiar usando el -S opción, descrita en OPCIONES.) También intenta nombre como herramienta de edición del
nombre de archivo literal. Archivos que terminan en ".lhs"se tratan como escrituras alfabetizadas.
OPCIONES
Algunas opciones se alternan con + or - para activarlos o desactivarlos, respectivamente.
Idioma conformidad
+98 Acepte solo Haskell 98 (no se puede cambiar dentro de Abrazos; predeterminado: activado). Convirtiendo esto
off habilita varias extensiones especiales de Hugs, que se describen en el Abrazos 98
User Manual.
+o Permitir instancias superpuestas (una extensión Hugs; predeterminado: desactivado)
+O Permitir instancias superpuestas inseguras (una extensión Hugs; predeterminado: desactivado)
+H Permitir "aquí documentos" (una extensión Hugs; predeterminado: desactivado)
Módulo carga
+l Trate los archivos cuyos nombres no terminen en '.hs'ni'.lhs'como guiones alfabetizados
(predeterminado: desactivado)
+. Imprimir puntos para mostrar el progreso mientras se cargan los módulos (predeterminado: desactivado)
+q No imprima nada para mostrar el progreso mientras se cargan los módulos (predeterminado: activado)
+w Mostrar siempre qué archivos están cargados (predeterminado: desactivado)
expresión evaluación
+s Imprime el número de reducciones / celdas después de cada evaluación (predeterminado: desactivado)
+t Tipo de impresión después de cada evaluación (predeterminado: desactivado)
+T Aplicar las reglas predeterminadas de Haskell antes de los tipos de impresión (predeterminado: desactivado)
+g Imprime el número de celdas recuperadas después de cada recolección de basura (predeterminado: desactivado)
+Q Calificar nombres al imprimir (predeterminado: desactivado)
+k Mostrar errores de tipo en su totalidad (predeterminado: desactivado)
+u Utilizar "show"para mostrar los resultados (predeterminado: activado)
+I Mostrar resultados de programas IO (predeterminado: desactivado)
parámetros
Otras opciones (en las que - podría ser reemplazado por +, la elección no hace ninguna diferencia) son:
-hnúmero Establecer el tamaño del montón (no se puede cambiar dentro de Abrazos; predeterminado: 250 K)
-pstr Establecer cadena de solicitud en str (predeterminado: `% s> '). Alguna %s en el mensaje será reemplazado
por el nombre del módulo actual.
-rstr Establecer repetir la última cadena de expresión en str (defecto: $$).
-Pstr Establezca la ruta de búsqueda para los archivos de origen en str, que debe ser una lista separada por dos puntos
directorios. Una entrada nula en esta lista será reemplazada por la búsqueda anterior.
sendero; un nulo str significa la ruta predeterminada. Cualquier ocurrencia de {Abrazos} en esta cadena
se expande al directorio de la biblioteca Hugs, a saber / usr / lib / abrazos. Similar, {Hogar}
se expande a su directorio de inicio (el valor de la INICIO Variable ambiental).
Una entrada del formulario 'directorio/*'significa todos los subdirectorios inmediatos de
directorio. El valor predeterminado es
.: {Inicio} / lib / abrazos / paquetes / *: / usr / local / lib / abrazos / paquetes / *: {Abrazos} / paquetes / *: {Abrazos} / bibliotecas
-Sstr Establezca la lista de sufijos de archivos de origen separados por dos puntos en str (defecto: .hs: .lhs). La
la entrada nula en esta lista será reemplazada por la lista de sufijos anterior; un nulo str
significa la lista predeterminada.
-Estr Utilice la configuración del editor proporcionada por str (predeterminado: el valor de la EDITOR entorno
variable). Cualquier aparición de %d y %s en la opción del editor se reemplazan por el
el número de la línea de inicio y el nombre del archivo que se va a editar, respectivamente. Una común
el ajuste es "vi +% d %s".
-cnúmero Establezca el límite de corte de restricción en el verificador de tipo en número (predeterminado: 40).
-Fcmd Establezca el filtro de preprocesador para los archivos de origen en cmd (desarmado por defecto). En lugar de
leer un archivo fuente directamente, Abrazos leerá la salida estándar de cmd corre con
el nombre del archivo de origen como argumento.
-Xstr La cuerda str se interpreta como una cadena de opciones. Esto es útil, por ejemplo,
para pasar múltiples argumentos a abrazos en un parche de #! guión.
COMANDOS
Una vez que se ha cargado el intérprete, están disponibles los siguientes comandos:
:carga [módulos] borra todos los módulos excepto el preludio y carga los módulos especificados.
:además módulos leer módulos adicionales.
:recargar repetir último carga mando.
edit: presentar editar presentar.
edit: editar el último archivo.
:módulo módulo establecer módulo para evaluar expresiones.
expr evaluar la expresión.
:tipo expr imprimir tipo de expresión.
:? mostrar esta lista de comandos.
:colocar opciones establecer opciones de línea de comando.
:colocar ayuda en las opciones de la línea de comandos.
: nombres [.] enumera los nombres que se encuentran actualmente en el alcance que coinciden con cualquiera de los patrones de estilo shell.
: info nombres describir objetos con nombre.
:navegar módulos buscar nombres exportados por módulos.
:encontrar nombre editar archivo que contiene la definición de nombre .
:!comando escape de la cáscara.
:CD dir cambio de directorio.
: gc forzar la recolección de basura.
:versión Imprimir versión Hugs.
: dejar Salida intérprete de Abrazos.
Cualquier comando puede abreviarse como :c donde c es el primer carácter del nombre completo. Sobre
la mayoría de los sistemas, también puede salir de Abrazos escribiendo el carácter de fin de archivo (^ D).
Tenga en cuenta que la tecla de interrupción (^ C en la mayoría de los sistemas) se puede utilizar en cualquier momento mientras se utiliza
Abrazos abandonar el proceso de lectura en un archivo de definiciones de funciones o
evaluación de una expresión. Cuando se detecta la interrupción, Abrazos imprime la cuerda
"{¡Interrumpido!}"e imprime el indicador para que se puedan introducir más comandos.
SER ÚNICO PROGRAMAS
El sistema abrazos El comando es un intérprete de un script ejecutable de Hugs, que debe contener un
Haskell Main módulo. Por ejemplo, el archivo ejecutable ¡Hola podría contener las líneas
#! / usr / bin / runhugs +l
> módulo Main donde
> principal = ponerStr "Hola, Mundo \ n "
Cuando se ejecuta este archivo, abrazos invocará el principal función. Cualquier argumento dado sobre
la línea de comando estará disponible a través de obtenerArgs.
Tenga en cuenta que #! pasa solo un argumento al guión. los -X La opción se puede usar para obtener
alrededor de esto.
C INTERFAZ
En arquitecturas que admiten enlaces dinámicos, Abrazos implementa la parte del Haskell 98
Extranjero Función Fácil de usar (FFI) que permite que las funciones de Haskell llamen a rutinas C. (Sobre
las arquitecturas x86, PowerPC y Sparc, todas extranjero importars son compatibles; en otros,
only estático se proporcionan las importaciones.) Módulos que contienen tales extranjero las declaraciones deben ser
compilado usando el abrazos comando antes de usar con abrazos. Argumentos adicionales para la C
el compilador se puede suministrar a través de argumento_compiladors. Por ejemplo, suponga que tiene algo de C
funciones en prueba.c y algunas declaraciones FFI para esas funciones en Prueba.hs y el codigo
in prueba.c necesita ser compilado con -lm. Luego, compilaría el módulo con el
comando
abrazos Prueba.hs prueba.c -lm
que genera un archivo de objeto Prueba.así. Entonces cuando abrazos cargas Prueba.hs, también cargará
Prueba.así.
En la FFI estándar, cada extranjero importar la declaración debe nombrar un archivo de encabezado C
que contiene el prototipo de la función. Debido a que esto suele ser engorroso, abrazos
proporciona la siguiente opción adicional:
-istr Especifique una inclusión para el archivo C generado. La cadena de inclusión debe ser
algo que pueda seguir "#incluir"en un programa C, como en
abrazos '-I ' '-i "mydefs.h"' Prueba.hs prueba.c -lm
MEDIO AMBIENTE
ABRAZOS BANDERAS
Opciones adicionales para abrazos, procesado antes que cualquier dado en la línea de comando.
ABRAZOS
El directorio de la biblioteca Hugs (predeterminado: / usr / lib / abrazos).
EDITOR El editor predeterminado, si -E no se da.
SHELL Se utiliza para especificar el shell que invoca el :! mando.
Use ffihugs en línea usando los servicios de onworks.net