gpt4 book ai didi

haskell - 一个 Haskell 问题写错误发现洞 _ a5

转载 作者:行者123 更新时间:2023-12-05 09:12:04 26 4
gpt4 key购买 nike

创建一个函数来计算二叉树中的下一个元素。

data BSearchTree a = Nil | Node a (BSearchTree a) (BSearchTree a)
deriving (Show, Eq)
successor :: (Ord a) => a -> BSearchTree a -> Maybe a
successor a = if a Nil then Just succ Nil
else if a (Node _ t1 t2)
then Just succ a (Node _ t1 t2)
else Nothing

找到洞:_::a5 其中:“a5”是一个不明确的类型变量 • 在‘Node’的第一个参数中,即‘_’ 在‘a’的第一个参数中,即‘(Node _ t1 t2)’ 在表达式中:a (Node _ t1 t2) • 相关绑定(bind)包括 a::a(绑定(bind)在桌面/Aufgabe6.4.hs:32:11) successor::a -> BSearchTree a -> Maybe a (绑定(bind)在桌面/Aufgabe6.4.hs:32:1) 约束包括Ord a(来自桌面/Aufgabe6.4.hs:30:1-53) | | else if a (Node _ t1 t2)

不太明白,报错是什么意思...

最佳答案

在您的代码中,successor 函数的右侧有两个下划线 (_),它们是 typed holes [haskell-wiki] .

Typed holes 可以让编译器生成应该放在那里的项目的类型,如果你自己很难弄清楚的话。在 StackOverflow 等 QA 网站上,类型化漏洞经常用于提供 OP 仍需要实现某些方面的解决方案。

在这种特定情况下,您需要在两个子表达式 (Node _ t1 t2) 中为 _ 填写一些表达式(本身不是 < em>在两种情况下表达相同)。

关于haskell - 一个 Haskell 问题写错误发现洞 _ a5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59182840/

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