如何通过Hoogle搜索要求成员实现Ord类的有序/排序数据结构?
搜索无匹配结果的原因
- Hoogle、Stackage Hoogle的默认类型匹配逻辑不支持泛化类型构造器匹配:你输入的搜索签名里的
f是指代任意单参数类型构造器的变量,但默认情况下搜索工具会将f视为具体类型,不会自动把Heap、Set这类实际的容器类型和f做匹配,自然返回不了结果。 - 实际的这类
fromList函数签名不会用泛化的f a写法:所有需要Ord约束的容器对应的fromList都会直接标注具体返回类型,比如堆的实现签名为Ord a => [a] -> Heap a,有序集合的签名为Ord a => [a] -> Set a,和你输入的泛化签名并不完全一致,无法触发匹配。 - 可以调整搜索方式得到结果:如果要匹配所有符合条件的容器,把搜索签名改成
Ord a => [a] -> _ a即可,或者直接搜索关键词Ord fromList,就能得到你需要的相关数据结构和函数实现。
内容的提问来源于stack exchange,提问作者Charlie
相关产品推荐
相关产品推荐

