중첩 목록 구조가 임의 길이이며 깊이는 3입니다. 첫 번째 레벨은 두 번째 레벨과 마찬가지로 임의 길이를 갖지만 세 번째 레벨은 전체 길이에 걸쳐 일정한 길이를 갖습니다. 상기 구조의 예는 '(((A B) (C D)) ((E F) (G H)) ((I J)))
일 것이다.중첩 목록에서 작동
을 가로 질러에 다른 기능을 적용하는 함수를 작성하려고합니다. (
가'((AC BD) (EG FH) (I J))
를 산출하지만리스트의 세 번째 단계는 더 많은 요소를 포함하는 것을 상상
f A C = AC, f B D = BD, f E G = EG, f F H = FH, f I = I, f J = J
: 예시적인 구조에 걸친 함수 맵핑의 예는이 순서로 될 최종 버전에서 약 32,000 개).
본질적으로 내가하려는 것은 하스켈에서 f . transpose
과 같이 표현됩니다. 첫 번째 섹션의 첫 번째 부분을 얻으려면 (map car (map flatten (car ...)))
과 같은 것이 필요하다는 것을 알고 있습니다. 그러나 그 이후에는 여기에서 논리가 없어졌습니다. 이것이 정말 뒤죽박죽이고 잘못 설명 된 질문이라면 유감입니다. 나는 정말로 잃어 버렸다.
구조를 통해이 방식으로 함수를 적용하는 방법은 무엇입니까?