【发布时间】:2011-05-03 02:11:11
【问题描述】:
鉴于:
data MyRecord a = MyRecord{list :: [a], other_fields :: Char, …}
我正在尝试编写一个函数,它将一个新的a 放在列表中并返回一个新的MyRecord:
pushOntoList :: a -> MyRecord -> MyRecord
问题:
有没有办法写pushOntoList 是这样一种方式,它不依赖于记录的其余部分,而只是将其原封不动地返回?
问这个问题的另一种方法是你能写pushOntoList而不看到MyRecord定义的其余部分吗?
【问题讨论】:
-
如果您对记录字段做任何不重要的事情,我建议您研究 fclabels 或 data-accessor 为您提供可组合的记录访问器。 Haskell 的记录非常丑陋和削弱。