我有一个任意长度的嵌套列表结构,深度为三。第一层具有任意长度,第二层也是如此,但第三层保证在整个事物中具有统一的长度。所述结构的一个例子是'(((A B) (C D)) ((E F) (G H)) ((I J)))
。
我正在尝试编写一个函数,该函数将在结构的不同级别应用另一个函数(对不起,我真的不知道如何表达)。跨示例结构的函数映射示例如下:
f A C = AC, f B D = BD, f E G = EG, f F H = FH, f I = I, f J = J
,
屈服
'((AC BD) (EG FH) (I J))
但是想象一下列表的第三级包含更多元素(例如,最终版本中约有 32,000 个元素)。
本质上,我想要做的事情会在 Haskell 中表达为类似f . transpose
. 我知道我需要一些东西(map car (map flatten (car ...)))
来获得第一部分的第一部分,但在那之后,我真的迷失了这里的逻辑。如果这是一个非常复杂且解释不清的问题,我很抱歉。我真的迷路了。
我将如何以这种方式在结构中应用该功能?