【发布时间】:2016-02-05 03:23:43
【问题描述】:
有没有办法将作为参数传递的函数应用于两种不同的类型?作为一个人为的例子,我可以使用表达式(Just 3, Just True) 创建一个(Maybe Int, Maybe Bool),但是如果我尝试使用该函数使这种行为更通用
generic :: (a -> Maybe a) -> (Maybe Int, Maybe Bool)
generic f = (f 3, f True)
为了让我能够执行generic Just 之类的操作,编译器会报错,因为类型变量a 是常量。
这种情况的用例是将通用函数应用于树结构,其中每个节点都由类型参数化。
【问题讨论】:
标签: haskell parametric-polymorphism