【问题标题】:Haskell type alias defeated by error "qualified name in binding position"Haskell 类型别名因错误“绑定位置中的限定名称”而失败
【发布时间】:2014-08-05 13:35:29
【问题描述】:

作为 Haskell 新手,我正在尝试使用关键字“数据”来定义类型别名。这是我简单的整个文件:

import qualified Data.Array.Unboxed
data Point = Data.Array.Unboxed.UArray Int Double

GHC 说“绑定位置的限定名称:Data.Array.Unboxed.UArray”

为什么我不能使用限定名称? 那我应该如何定义我的类型别名呢?

【问题讨论】:

  • 使用type Point = Data.Array.Unboxed.UArray Int Double ;)
  • 对于类型别名使用type,而不是data
  • 天哪,我怎么能错过这个!
  • 请有人解决我这个愚蠢的问题。

标签: haskell type-alias


【解决方案1】:

您需要使用type 关键字,它声明了一个类型别名。 data 关键字声明了一个新的自定义数据类型。所以你可以做类似的事情

data Point = MkPoint (Data.Array.Unboxed.UArray Int Double)
--           ^ The constructor name

但你似乎只想要

type Point = Data.Array.Unboxed.UArray Int Double
--           ^ No custom constructor for type alias

【讨论】:

    猜你喜欢
    • 2019-11-18
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多