我觉得类型签名看起来像f :: a -> [Int]
输入数据看起来像data NamedPoint = NamedPoint String Int Int
是否有一个通用函数需要一个数据结构并返回其中的所有int值?
data Person = Name Int Int Int
,并在REPL使用它是这样的:
>> let namedPoint = NamedPoint "hey" 1 2
>> let tommy = Person "Tommy" 1 2 3
>> f namedPoint
>> [1,2]
>> f Tommy
>> [1,2,3]
我认为这将是有用另一种方法是记录你什么时候懒得为具有很多参数的数据编写getter。
如果输入的数据将是''NamedPoint ''为什么函数不能输入为''f :: NamedPoint - > [Int]''? – zegkljan
在这种情况下,它可以。但我认为这种行为可能对提取泛化类型有用。生病编辑我的问题更具体。 – user514156
对于此任务,uniplate是最简单的选择。你的f就是universeBi函数。 – augustss