我有一个任意长度的嵌套列表结构,深度为三。第一层的长度与第二层相同,但是第三层的长度在整个事物中保证具有统一的长度。所述结构的一个例子是'(((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中表达为。我知道我需要类似(map car (map flatten (car ...)))
来获得第一部分的第一部分,但在此之后,我真的迷失在这里的逻辑。如果这是一个非常复杂,解释不清的问题,我很抱歉。我真的很迷茫。
我该如何去应用这种方式在整个结构上的功能?