【发布时间】:2017-12-21 22:51:36
【问题描述】:
f是什么类型的?
class C f where
comp :: f b c -> f a b -> f a c
我写过:(* -> *) -> * -> *
它是否正确? c 是一个具体类型 *。 a 是一种接受类型并产生类型的类型。而这两个都是f的参数?我的论证正确吗?
T 是什么类型的?
data T f g = T (f String Int) (g Bool)
f 有两种具体类型作为参数(String 和Int)。 g 有一个参数 (Bool) 这两个都是 T 的参数。所以我有:(*->*->*)->(*->*)->*。
它是否正确?谢谢
【问题讨论】:
-
在 GHCi 中,
:info C会告诉你f的类型,:kind T会告诉你T的类型。 -
@ReinHenrichs 我怀疑这是作业。打算用有机大脑来推理。
-
f和comp的名字绝对是赠品。 -
仅供参考,
C类只是来自semigroupoids包的Semigroupoid。
标签: haskell functional-programming data-kinds