【问题标题】:Explicit module exports in FregeFrege 中的显式模块导出
【发布时间】:2015-12-17 11:09:58
【问题描述】:

我在阅读Frege language specification 并使用搜索引擎寻找示例后发布此内容。我希望我没有忽略一个明显的答案。

我正在尝试将一些 Haskell 代码移植到 Frege,但我找不到任何提及显式模块导出的文档。所以,在我的 Haskell 代码中,我有类似的东西

module common.Timer(start, ...)
where
...

但这会在 Frege 中产生编译器错误,我必须删除导出列表:

module common.Timer
where
...

但是通过这种方式,我无法控制模块中定义的哪些符号被导出。

是否可以在 Frege 中定义显式模块导出?如果有,语法是什么?

【问题讨论】:

    标签: export explicit frege


    【解决方案1】:

    您的代码看起来不错。在我深入探讨可能的错误之前,这里有一个快速解决方法,您可以继续工作:默认情况下,所有顶级符号都会导出,除非它被标记为 private

    讨论后编辑:这是当前与我们即将解决的 Haskell 标准的偏差。

    【讨论】:

    • 所以我正在寻找的替代语法可能是将符号标记为private?
    • 是的,您可以只标记private 不应导出的内容。但是,原始的 Haskell 语法也应该可以正常工作。你用的是什么弗雷格版本?
    • 由 Frege Eclipse 插件安装的版本 3.23.454-g8779d9e
    • 好的,谢谢。这是我们将要解决的未解决问题之一,以提高 Haskell 兼容性。在de.slideshare.net/Mittie/… 中是幻灯片编号 31。如果还没有,请随时提交相应的 github 问题。
    • 感谢您的评论:如果您将那条信息(尚不支持 Haskell 语法)添加到您的答案中,我可以将其标记为已接受。顺便说一句,我有一些使用 Haskell 的经验,我正在评估 Frege 在 Java 商店中的使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    相关资源
    最近更新 更多