我对Haskell和阅读Haskell来自第一性原则很陌生。
现在我正在讨论第五章。当我解决它的练习时,特别是7,8,我不明白为什么我没有想出正确的答案
所以问题是
你可以找到问题和解决方案这里
如果kessel的类型是(Ord a,Num b) => a -> b -> a,那么kessel 12的类型是:
我认为它的答案是5. Ord a => a,bcs --它可能的实现之一--我想出来的就是完全忽略参数b。
像这样
kessel ::(Ord a, Num b) => a -> b -> a
kessel a b = a
--if u have any other implementation Please share由于它完全忽略了b,所以它不应该影响a的类型,但是ghci仍然显示它的类型是
:t kessel 1 2
kessel 1 2 :: (Ord a, Num a) => a我错过了什么?Q:8也是如此。
发布于 2021-04-19 19:56:10
Num b是一种红鲱鱼。Num a约束是因为您为a类型传递了一个数字文字,而这些类型需要Num类型。试着让:t kessel [] 2看它消失。
https://stackoverflow.com/questions/67168490
复制相似问题