Haskell:从类型推导出函数

标签 haskell types

所以我今天在玩 Haskell,考虑给定类型的函数定义的自动生成。

例如函数的定义

twoply :: (a -> b, a -> c) -> a -> (b, c)

鉴于类型(如果我排除使用 undefined :: a ),这对我来说是显而易见的。

然后我想出了以下内容:
¢ :: a -> (a ->b) -> b
¢ = flip ($)

它有一个有趣的特性
(¢) ¢ ($) :: a -> (a -> b) -> b

这让我想到了我的问题。给定关系 =::=对于“具有相同的类型”,语句 x =::= x x ($)唯一定义 x 的类型?必须x =::= ¢ ,或者 x 是否存在另一种可能的类型?

我试图从 x =::= x x ($) 向后工作推论x :: a -> (a -> b) -> b ,却陷入了困境。

最佳答案

x =::= x x ($)也适用于 x = const ,其类型为 a -> b -> a .所以它不唯一标识类型。

关于Haskell:从类型推导出函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3731501/

相关文章:

scala - 类型中的尾随逗号

reactjs - TypeScript 条件类型 : Extract component props type from react component

javascript - 在 GAS Web 编辑器中输入符号

haskell - 操作 monad 堆栈

haskell - 从子树中提取值

c# - 如何将 TypeCode 转换为实际类型?

javascript - 为什么javascript中的函数不接受 undefined variable ?

Haskell:takeWhile 在 Maybe 列表中

haskell - C语言和Haskell

parsing - 如何使用 Data.ByteString 解析 7GB 文件?