首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么f (f,b,c) (f (f,b) (f,c))与(.)不匹配?

为什么f (f,b,c) (f (f,b) (f,c))与(.)不匹配?
EN

Stack Overflow用户
提问于 2018-08-25 16:44:49
回答 1查看 115关注 0票数 2

据我所知,我刚刚制定了(.)的类型,即广义的,但是,当我将它输入胡格尔时,我没有收到任何结果。

我本以为

代码语言:javascript
复制
(.) :: (->) ((->) b c) ((->) ((->) a b) ((->) a c))
     ~ (b -> c) -> ((a -> b) -> (a -> c))
     ~ (b -> c) -> (a -> b) -> a -> c

相配

代码语言:javascript
复制
thistype ~ f (f b c) (f (f a b) (f a c))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-26 10:45:59

技术上的答案是,Hoogle将搜索拆分为外部(->)部件上的参数和返回类型,然后在组合结果之前分别搜索每个部分。外部(->)受到非常特殊的对待,特别是它很乐意重新排序参数。

Hoogle之所以这样工作,最根本的原因是它是一个搜索引擎,而不是一个统一引擎。如果你正在搜索上面的内容,并返回(.),这会回答你的问题吗?我猜可能不是。我最喜欢的例子是,搜索"a -> [(a,b)] -> b"应该返回lookup,尽管它并不统一。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52019322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档