据我所知,我刚刚制定了(.)的类型,即广义的,但是,当我将它输入胡格尔时,我没有收到任何结果。
我本以为
(.) :: (->) ((->) b c) ((->) ((->) a b) ((->) a c))
~ (b -> c) -> ((a -> b) -> (a -> c))
~ (b -> c) -> (a -> b) -> a -> c相配
thistype ~ f (f b c) (f (f a b) (f a c))发布于 2018-08-26 10:45:59
技术上的答案是,Hoogle将搜索拆分为外部(->)部件上的参数和返回类型,然后在组合结果之前分别搜索每个部分。外部(->)受到非常特殊的对待,特别是它很乐意重新排序参数。
Hoogle之所以这样工作,最根本的原因是它是一个搜索引擎,而不是一个统一引擎。如果你正在搜索上面的内容,并返回(.),这会回答你的问题吗?我猜可能不是。我最喜欢的例子是,搜索"a -> [(a,b)] -> b"应该返回lookup,尽管它并不统一。
https://stackoverflow.com/questions/52019322
复制相似问题