【问题标题】:How to parse to custom type in Haskell如何在 Haskell 中解析为自定义类型
【发布时间】:2018-02-26 03:41:50
【问题描述】:

我是haskell 新手,不知道如何解析。

我创建了一个新类型

type Field = String

现在我想将 [String] 解析为 [Field],我该怎么做? 我已经有了这个:

parse :: [String] -> [Field]

【问题讨论】:

  • 但是这里你不解析:FieldString:你定义了一个类型别名。这意味着[String][Field]。您不必进行任何处理。

标签: string parsing haskell types


【解决方案1】:

我创建了一个新类型

不,你没有。如果你写type Foo = ...,你定义了一个类型别名:没有新类型,你只是给了某个(复合)类型一个新名字。从现在开始,您可以使用FieldString 交错。您可以使用data Foo = ...newtype Foo = ... 定义新类型。通常type Foo = ... 用于给更复杂的类型一个特定的名称。比如type NamedStringCollection = (String,[String])

由于StringField 是同一种类型,所以[String][Field] 也是同一种类型。因此,您不需要进行任何处理。如果你有一个[String],这同时也是一个[Field]

你可以写:

parse :: [String] -> [Field]
parse = id  -- not necessary

但是id 只是返回你给它的东西。所以id 没有做任何工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多