我想知道在Haskell中是否有更好的方法可以找到只有TYPE的FUNCTIONS。实施例.-
Find function for given type- (a->b->c) ?
我总是要以蛮力的方式思考。请帮忙。
我已经完成了这个 - Haskell: Deducing function from type,但找不到更好的方法。
答案 0 :(得分:2)
有时可能。例如,我们都知道类型forall a. a
没有“正确”值,而forall a . a -> a
类型只有一个,但是有无数个类型forall a. (a -> a) -> a -> a
。
特别是,您可以将一些Haskell类型视为在类型理论中表达定理,并将它们实例化为证明该定理的过程。没有一般方法可以做到这一点,但有许多重复类型,如forall a . a -> a
,它们很容易被发现。
要了解有关此过程的更多 ,请考虑阅读Benjamin Pierce的Software Foundations或Adam Chlipala的Certified Programming with Dependent Types。这两个都探讨了如何使用与基于OCaml的Haskell类似的语言Coq来证明这样的定理(实例化类型)。
答案 1 :(得分:1)
除了DJINN(这是一个外部工具),您还可以使用以下代码
非正式地,在Haskell中将类型转换为值。您可以立即调用此功能。答案 2 :(得分:0)
我猜.. (\x y -> (x,y) )
可以放入(a->b->c)