【发布时间】:2012-07-07 16:25:10
【问题描述】:
在 Laemmel 和 SPJ 的 2003 Scrap Your Boilerplate paper 中,第 3 页上有一个代码 sn-p
mkT :: (Typeable a, Typeable b) => (b -> b) -> a -> a
mkT f = case cast f of
Just g -> g
Nothing -> id
然后论文解释了
也就是说,如果 x 的类型与 f 的参数类型相同,则 mkT f x 将 f 应用于 x
按照本文前面示例的模式,我认为必须将cast f 的类型与Maybe (b -> b) 类型进行比较才能将上述结果评估为Just g,但这似乎不正确。
cast f 的签名是怎么回事?
【问题讨论】:
标签: haskell scrap-your-boilerplate