Haskell访问自定义数据类型中的字段
对于分配,我必须为自定义数据类型树实现不同的函数,如下所述 我想使用错误的函数getNodeValue访问树的根节点的“标签”节点值。我将非常感谢您对如何做到这一点的帮助Haskell访问自定义数据类型中的字段,haskell,tree,custom-data-type,Haskell,Tree,Custom Data Type,对于分配,我必须为自定义数据类型树实现不同的函数,如下所述 我想使用错误的函数getNodeValue访问树的根节点的“标签”节点值。我将非常感谢您对如何做到这一点的帮助 data Tree = Node (Label -> Label) Label [Tree] type Label = Int testTree = Node (+1) 0 [Node (+1) 1 [], Node (+1) 2 [], Node (+1) 3 []] getNodeValue :: Tree -&
data Tree = Node (Label -> Label) Label [Tree]
type Label = Int
testTree = Node (+1) 0 [Node (+1) 1 [], Node (+1) 2 [], Node (+1) 3 []]
getNodeValue :: Tree -> Label
getNodeValue t = {... how does I custom types? ...}
我认为您希望在这里使用模式匹配来“查看”树数据类型内部。要获取所提供树的根节点的值,必须执行以下操作:
getNodeValue :: Tree -> Label
getNodeValue (Node _ l _) = l
我认为您希望在这里使用模式匹配来“查看”树数据类型内部。要获取所提供树的根节点的值,必须执行以下操作:
getNodeValue :: Tree -> Label
getNodeValue (Node _ l _) = l
如果允许更改类型定义,也可以使用记录语法自动生成访问器:
data Tree = Node
{ getUpdater :: (Label -> Label)
, getNodeValue :: Label
, getSubnodes :: [Tree]
}
如果允许更改类型定义,也可以使用记录语法自动生成访问器:
data Tree = Node
{ getUpdater :: (Label -> Label)
, getNodeValue :: Label
, getSubnodes :: [Tree]
}
谢谢你,这正是我想要的!我想应该是这样的,但我不知道我也必须传递构造函数调用。为了正确起见,树实际上应该是节点。是的,就在之前更改了它。谢谢你,谢谢你,这正是我想要的!我想应该是这样的,但我不知道我也必须传递构造函数调用。为了正确起见,树实际上应该是节点。是的,就在之前更改了它。谢谢你。