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