首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Haskell -导出数据构造函数

Haskell -导出数据构造函数
EN

Stack Overflow用户
提问于 2017-12-21 17:00:51
回答 1查看 7.1K关注 0票数 18

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

代码语言:javascript
复制
data Formula = Formula {
    typeFormula :: String, 
    nbClauses   :: Int,
    nbVars      :: Int,
    clauses     :: Clauses       
}

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

代码语言:javascript
复制
module Formula (
    Formula ( Formula ),
    solve
) where

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

EN

回答 1

Stack Overflow用户

发布于 2017-12-21 17:34:34

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

代码语言:javascript
复制
module Formula (
    Formula ( Formula ),
    solve
) where

应该是

代码语言:javascript
复制
module Formula (
    Formula (..),
    solve
) where

代码语言:javascript
复制
module Formula (
    module Formula ( Formula (..)),
    solve
) where

当前的导出语句说,在模块公式中,导出模块公式中定义的类型Formula和函数解题(即模块的作用域,无论在何处定义)

(..)语法意味着导出前面类型的所有构造函数。在您的例子中,它等价于显式

代码语言:javascript
复制
module Formula (
    Formula (typeFormula,nbClauses, nbVars,clauses),
    solve
) where
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47929556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档