2009-12-17 7 views
4

순서대로 두 목록에서 목록 이해를 사용할 수 있습니까? A = [1,2,3], B = [4,5,6]이 주어진다면 C = [f(1, 4), f(2, 5), f(3, 6)]을 얻으십시오. 즉,보다 직접적/효율적인 방법 [f(U, V) || {U, V} = lists:zip(A, B)].순차적으로 2 개의 목록이있는 얼랭 목록 이해력?

A = <<1,2,3>>B = <<4,5,6>>이 주어진다면 비슷한 질문이 바이너리로 이어집니다. 예를 들어 두 개의 바이너리를 xor해야하는 경우 매우 유용합니다.

답변

8

현재로서는 불가능합니다. EEP12EEP19에서 이미 제안되었습니다.

가장 좋은 방법은 고유 한 재귀 함수를 구현하는 것입니다.

1

lists 모듈에는 이미 더 높은 차수 기능이 있으며 lists:zipwith/3이라고합니다. 예제 시나리오는 다음과 같이 구현됩니다.

lists:zipwith(fun f/2, A, B). 
+0

예, 두 개 또는 세 개의 목록을 압축하는 기능이 있습니다. 하지만리스트의 이해력이 있기 때문에 N 개의리스트에 대한 일반적인 해결책은 없습니다. – Zed

관련 문제