haskell - 为什么 haskell 强制总是输入泛型类型?

标签 haskell types

假设我们有:

data Data a b c = Build (a,b,c) deriving Show

foo :: Data a b c -> Data a b c
foo d = d

main = print $ foo $ Build (1, 1, "a")

有什么方法可以避免每次使用数据类型时都写入a b c

使用类型,例如:

foo :: Data -> Data
foo d = d

最佳答案

是的,当然:

foo :: d ~ Data a b c => d -> d

关于haskell - 为什么 haskell 强制总是输入泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42143457/

相关文章:

haskell - 自由单子(monad)的推导

types - golang 类型断言使用 reflect.Typeof()

java - 术语非原始类型和对象类型有什么区别?

c - x86-64 处理器的数据类型

types - BISON/FLEX C-Basic没有声明类型错误

haskell - 为什么 `fmap` 需要在 `succ` 上调用 `Maybe Integer` ?

haskell - 内存后续折叠调用

haskell - 使用具有多个数据构造函数的相同镜头

haskell - 类型签名 a -> b -> a 和 c -> a -> c 之间有区别吗?

python - 如何为字典变量设置 python 类型提示?