统一c - > a - > b和(a - > b) - > C [英] Unifying c -> a -> b and (a -> b) -> c

查看:181
本文介绍了统一c - > a - > b和(a - > b) - > C的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当统一
时,Haskell类型合成器推断的类型是什么类型 c - > a - > b (a - > b) - > c



有人可以解释我该如何解决它?

谢谢!

解决方案

这似乎是某种练习/作业,所以我不会破坏一切,但首先给你一些提示:




  • 类型 c - > a - > b 实际上是 c - > (a - > b)

  • 所以你必须 unify c - > (a - > b) - >(> b) c ,即:


    • c with a - > b (第一部分)

    • a - > b 与 c (第二部分)




现在可以做些什么(试图摆脱 c ;))现在呢?



PS:我假设你想要这些类型 a b ,..是相同的

What is the type inferred by a Haskell type synthesizer when unifying the types c -> a -> b and (a -> b) -> c?

Can someone explain me how can I solve it?

Thanks!

解决方案

This seems to be some kind of exercise/homework so I will not spoil everything but give you some hints first:

  • the type c -> a -> b is actually c -> (a -> b)
  • so you have to unify c -> (a -> b) with (a -> b) -> c, that is:
    • c with a -> b (first part)
    • a -> b with c (second part)

now what could that (try to get rid of c ;) ) be now?

PS: I am assuming you want those types a, b, .. to be the same

这篇关于统一c - > a - > b和(a - > b) - > C的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆