gpt4 book ai didi

elm - 在 Elm 中定义嵌套或递归列表结构

转载 作者:行者123 更新时间:2023-12-01 22:24:40 24 4
gpt4 key购买 nike

我正在尝试使用 Haskell 99 Questions 学习 Elm .在问题 7 中,您必须定义一个嵌套列表结构。我试过这个:(基于阅读 this )

type NestedList a = Node a | List (NestedList a)

myList : NestedList number
myList =
[Node 1]

但是我得到以下错误:

The type annotation is saying:
NestedList number

But I am inferring that the definition has this type:
List (NestedList number)

这对我来说没有意义。 List (NestedList number) 肯定与 Node a | 的第二边匹配列表(NestedList a)?

最佳答案

问题 #7 要求您使用内置的 Elm List 类型作为您的 NestedList 定义的一部分,但是您定义 NestedList 的方式 类型实际上创建了一个名为 List 的构造函数,它无意中隐藏了内置的 List 类型。我认为这种类型签名实际上会为您提供您所追求的:

type NestedList a = Node a | NestedList (List (NestedList a))

您的 myList 签名现在应该更改,因为它实际上应该返回 NestedListList:

myList : List (NestedList number)
myList =
[Node 1]

根据这个新定义,您可以解决 #7 所要求的嵌套问题。您可以像这样定义更复杂的列表:

-- e.g. [1,2, [3, 4, [5]], 6]
myListierList : List (NestedList number)
myListierList =
[Node 1, Node 2, NestedList [Node 3, Node 4, NestedList [Node 5]], Node 6]

关于elm - 在 Elm 中定义嵌套或递归列表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36791460/

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