箭头如何用于多个元组?

问题描述 投票:0回答:1
foo (a1,a2) (b1,b2) (c1,c2) = (bar a1 b1 c1, bar2 a2 b2 c2)

我有很多具有不同数量参数元组的构造。如果是

foo' (a1,a2) = (bar' a1, bar2' a2)

我想“嘿,那是箭头!”:

foo' = bar' *** bar2'

但我还无法弄清楚具有多个输入元组(如第一行代码)的函数是否以及如何映射到箭头样式。处理此类函数的通用方法是什么?理想情况下,我总是想要像

foo = bar ... bar2
这样的东西。

haskell generics tuples arrow-abstraction
1个回答
5
投票
let (****) = uncurry (***) in (bar1, bar2) **** (a1, a2) **** (b1, b2) **** (c1, c2)
© www.soinside.com 2019 - 2024. All rights reserved.