统一c - > a - > b和(a - > b) - > C [英] Unifying c -> a -> b and (a -> b) -> c
本文介绍了统一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
witha - > 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 actuallyc -> (a -> b)
- so you have to unify
c -> (a -> b)
with(a -> b) -> c
, that is:c
witha -> b
(first part)a -> b
withc
(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屋!
查看全文