es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Varias líneas de importación producen error en ghci.

Esto es lo que he intentado en el intérprete de ghci (stack ghci 8.10.7)

λ> :{
import Data.List
import Data.Ratio
:}

Error: esperando una sola declaración de importación

¿Por qué no puedo hacer más de una importación a la vez? Por cierto, ¿se puede ingresar una definición de módulo completa de esta manera, es decir,

λ> :{
module STAL where
import Data.List
import Data.Ratio
import Data.Decimal
:}

Mi motivación es que estoy usando el babel de Emacs org-mode para Haskell, que solo funciona con código de varias líneas cuando está rodeado de :{ :}.

Tags:  ,

Answer

  1. Avatar for davy.ai

    En GHCi, la sintaxis :{ :} permite que varias líneas de código se ingresen como una sola entrada. Sin embargo, no permite ingresar múltiples declaraciones de importación al mismo tiempo, ya que GHCi espera que cada declaración se ingrese de forma individual. Por lo tanto, debes ingresar cada declaración de importación por separado, de la siguiente manera:

    λ> import Data.List
    λ> import Data.Ratio
    

    En cuanto a definir un módulo completo en GHCi, es posible hacerlo utilizando :{ :}, como has mostrado en tu ejemplo. Sin embargo, generalmente no se recomienda definir módulos enteros en GHCi, ya que puede dificultar la gestión y el mantenimiento del código. Es mejor práctica definir los módulos en un archivo separado e importarlos en GHCi según sea necesario.

Comments are closed.