gpt4 book ai didi

haskell - 如何获取自定义数据类型成员?

转载 作者:行者123 更新时间:2023-12-02 02:07:49 26 4
gpt4 key购买 nike

这是我到目前为止所尝试过的。我想创建一个带有 String 和两个 Int 的类型 Info。现在我想访问该类型给定实例的String。我已阅读Accessing members of a custom data type in Haskell .

我没想到这会起作用,但无法搜索我正在寻找的内容:

Prelude> data Info = Info String Int Int
Prelude> aylmao = Info "aylmao" 2 3
Prelude> aylmao . String

<interactive>:4:1: error:
• Couldn't match expected type ‘b0 -> c’ with actual type ‘Info’
• In the first argument of ‘(.)’, namely ‘aylmao’
In the expression: aylmao . String
In an equation for ‘it’: it = aylmao . String
• Relevant bindings include
it :: a -> c (bound at <interactive>:4:1)

<interactive>:4:10: error:
Data constructor not in scope: String :: a -> b0
Prelude>

我希望能够访问我类型的任何匿名成员,我该怎么做?

最佳答案

How to get custom data type member?

data Info = Info String Int Int

正如 Willem Van Onsem 所说,您可以编写一个函数来执行此操作:

infoString :: Info -> String
infoString (Info s _ _) = s

或者你可以 use record syntax命名您的数据类型字段:

data Info = Info { infoString :: String
, infoInt1 :: Int
, infoInt2 :: Int
}

并使用自动生成的 infoString::Info -> String 作为函数。

最好为这些字段想出更好的名称。

关于haskell - 如何获取自定义数据类型成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50017321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com