우리는 자동으로 융합 이런 종류의 수행에 어떤 reasearch이 거기에 너무같은 목록에서 두 개의 맵을 어떻게 융합시킬 수 있습니까?
unzip (map (\x -> (f x, g x)) xs)
처럼 표현
(map f xs, map g xs)
의 목록 xs
이상이 순회를 융합 수 있을까?
xs
을 통해 여분의 통과를 방지에 더 관심이 있어요..)
편집 : unzip
이 소비자와 융합 될 수 있는지에 따라이 변환이 의미가 없을 수도있는 실제 메모리 내 하스켈 목록에 융합을 실제로 적용하려고하지 않습니다. 나는 unzip
이 융합 할 수있는 환경을 가지고 있습니다 ("FlumeJava : 쉽고 효율적인 데이터 병렬 파이프 라인"참조).
어쨌든 자동은 아니지만 꽤 좋음 : http://squing.blogspot.com/2008/11/beautiful-folding.html –
이 결과가 다른 것으로 융합되지 않는 한 쌍을 만들고 압축을 풀 때 발생하는 오버 헤드가 여분의 순회 비용보다 크다. – augustss
@augustss 탐색이 거대한 파일을 넘지 않는다면! 나는 이것을 실제 목록에 적용 할 계획이 아닙니다. – tibbe