2010-11-13 13 views
5

Soy nuevo en Haskell. ¿Por qué cuando intento utilizar Days de Data.Time consigo este error:Importación de módulos Haskell

Could not find module `Data.Time': 
     It is a member of the hidden package `time-1.1.4'. 
     Perhaps you need to add `time' to the build-depends in your .cabal file. 

Estoy importando Data.List y Control.Monad, y tampoco me da este mensaje de error, pero el código import Data.Time hace.

¿Qué me estoy perdiendo?

¡Gracias por la ayuda!

EDIT: Estoy recibiendo un mensaje de error similar cuando uso: import Directory

Gracias chicos, sus respuestas me llegaron a la pista!

+2

A partir del mensaje de error, supongo que está utilizando cabal para construir su proyecto. En ese caso, debe enumerar los paquetes de los que depende su proyecto en su archivo cabal. Creo que la sintaxis es algo así como "build-depends: time, directory"; Estoy seguro de que alguien aquí sabrá la sintaxis exacta si eso no es así. –

+0

He estado usando Leksah. ¿Tal vez está usando Cabal detrás de escena y necesito configurar manualmente la compilación? –

Respuesta

10

Encienda Leksah con este proyecto, abra el menú del paquete y seleccione "editar paquete" desde él. Ahora, elija "dependencias" y agregue la dependencia que necesita (en su caso time). También puedes elegir una versión.

PD: No olvide presionar el botón "Guardar" después. (Creo que esto es un fracaso de diseño ...).

4

Simplemente edite el archivo de proyectos .cabal, generalmente en el directorio superior llamado ProjectName.cabal y encuentre la (s) línea (s) con "build-depends:" y agregue "tiempo" a esta lista. No necesita Leksah, a menos que ya lo use.

EDIT: Para responder a su pregunta de "¿por qué ahora y no con el módulo X"

Data.Time está en el paquete time, lo que, evidentemente, no se incluye en sus dependencias de construcción. Una historia similar para el módulo Directory. No obtienes estos errores con Data.List o Control.Monad porque son parte del paquete base que apostaría a que está en tus build-deps.

En una nota al margen, vale la pena tomarse el tiempo para aprender qué módulos están en base y qué funcionalidad proporcionan esos módulos. La base es bastante grande y muy útil.

Cuestiones relacionadas