我有一个Haskell数据构造函数,用于定义" API" (在我的应用程序的更高层),所以我不想改变它:
ViewModel = ViewModel { foo :: Entity Foo
, bar :: Entity Bar
, baz :: Entity Baz
}
我有一个产生三元组列表的函数:
getViewModels :: Monad m => m [(Entity Foo, Entity Bar, Entity Baz)]
是否有一种通用的方法来消除ViewModel
以消耗三元组的方式?更一般地说,是否有办法让ViewModel
消费n
- 元组?
当我调用我的代码时,我想到了这样的事情:
do
views <- getViewModels
return . fmap (uncurryN ViewModel) $ views
其中N
是一些自然数。