作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
创建一个函数来计算二叉树中的下一个元素。
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/
我是一名优秀的程序员,十分优秀!