【问题标题】:Trying to define my own type in Haskell试图在 Haskell 中定义我自己的类型
【发布时间】:2013-10-15 05:43:40
【问题描述】:

我正在尝试在 Haskell 中定义我自己的类型,称为 Name,它只是一个 String(我单独定义它以使我的代码更具可读性)。我只是这样写代码:

type Name = String

但是当我在 GHCI 上运行它保存的文件时,我收到一条错误消息,提示“输入 `type' 上的解析错误”。为什么会出现此错误?

完整代码:

module Names where import PhoneBook

type Name = String

【问题讨论】:

  • 这条线适合我。该文件中是否还有其他内容导致您收到错误?
  • 错误的缩进,很可能。请记住,空格在 Haskell 中很重要。
  • 尝试了所有不同的缩进,还是同样的错误?
  • 确保你没有得到任何 \t 作为空格,最佳做法是使用允许你使用空格设置缩进的编辑器。
  • 如果不是空格问题,那么我怀疑在此之前的(非空白)行有问题。可以发那条线吗?或者更好的是,一个简单但完整的示例来说明问题。

标签: haskell types


【解决方案1】:

这应该可行。很可能是您的编辑器中周围的空白或隐藏格式存在问题!

如果您粘贴它的源代码,我们可能可以直接解决它:)

【讨论】:

    【解决方案2】:

    您需要将导入语句放在模块声明的单独行上。像这样:

    module Names where
    
    import Phonebook
    
    type Name = String
    

    【讨论】:

    • 这个答案并不准确:不需要将导入放在单独的行上。但是,where 确实开始了一个块——因此后面的行必须在与它后面的第一个非空白、非注释字符相同的列中开始。
    猜你喜欢
    • 2016-07-12
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    相关资源
    最近更新 更多