Haskell中给定类型的函数

时间:2013-11-22 01:29:44

标签: haskell functional-programming

我想知道在Haskell中是否有更好的方法可以找到只有TYPE的FUNCTIONS。实施例.-

Find function for given type- (a->b->c) ?

我总是要以蛮力的方式思考。请帮忙。

我已经完成了这个 - Haskell: Deducing function from type,但找不到更好的方法。

3 个答案:

答案 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(这是一个外部工具),您还可以使用以下代码

http://okmij.org/ftp/Haskell/types.html#de-typechecker

非正式地,在Haskell中将类型转换为值。您可以立即调用此功能。

答案 2 :(得分:0)

我猜.. (\x y -> (x,y) )可以放入(a->b->c)

类型