Haskell - 导出数据构造函数

时间:2017-12-21 17:00:51

标签: haskell ghci

我的模块公式中有这些数据:

data Formula = Formula {
    typeFormula :: String, 
    nbClauses   :: Int,
    nbVars      :: Int,
    clauses     :: Clauses       
}

我想导出它,但我不知道正确的语法:

module Formula (
    Formula ( Formula ),
    solve
) where

有人可以告诉我正确的语法吗?

1 个答案:

答案 0 :(得分:4)

您的一些困惑来自于与您尝试导出的构造函数具有相同的模块名称。

module Formula (
    Formula ( Formula ),
    solve
) where

应该是

module Formula (
    Formula (..),
    solve
) where

或者

module Formula (
    module Formula ( Formula (..)),
    solve
) where

您当前的导出语句在Module Forumla中导出模块公式中定义的类型Formula和函数solve(即模块的范围,无论它在何处定义))

(..)语法表示导出前一个类型的所有构造函数。在您的情况下,它等同于显式

module Formula (
    Formula (typeFormula,nbClauses, nbVars,clauses),
    solve
) where