simbolos peta para opciones hacer español entornos ejemplos desarrollo como haskell syntax module

para - peta haskell en español



Cómo importar un archivo.hs en Haskell (3)

He hecho un archivo llamado time.hs Contiene una única función que mide el tiempo de ejecución de otra función.

¿Hay alguna manera de importar el archivo time.hs en otro script Haskell?

Quiero algo como:

module Main where import C:/Haskell/time.hs main = do putStrLn "Starting..." time $ print answer putStrLn "Done."

Donde el tiempo se define en ''time.hs'' como:

module time where Import <necessary modules> time a = do start <- getCPUTime v <- a end <- getCPUTime let diff = (fromIntegral (end - start)) / (10^12) printf "Computation time: %0.3f sec/n" (diff :: Double) return v

No sé cómo importar o cargar un archivo .hs separado. ¿Necesito compilar el archivo time.hs en un módulo antes de importar?


Si el módulo time.hs está ubicado en el mismo directorio que su módulo "principal", puede simplemente escribir:

import time

Es posible utilizar una estructura jerárquica para que pueda escribir import utils.time . Por lo que sé, la forma en que quieras hacerlo no funcionará.

Para obtener más información sobre los módulos, consulte aquí Aprenda un Haskell, haciendo nuestros propios módulos .


Supongamos que tengo dos archivos en el mismo directorio: ModuleA.hs y ModuleB.hs.

ModuleA.hs:

Module ModuleA where ...

ModuleB.hs:

Module ModuleB where import ModuleA ...

Puedo hacer esto:

ghc -I. --make ModuleB.hs

Tenga en cuenta que el nombre del módulo y el nombre del archivo deben ser iguales. De lo contrario, no puede compilar. Algo como

No se pudo encontrar el módulo ''...''

ocurrira.


Time.hs :

module Time where ...

script.hs :

import Time ...

Línea de comando:

ghc --make script.hs