2013-01-04 4 views
6

두 가지 관련 질문.repa의 동적 프로그래밍

  • repa 배열에는 변경 가능한 (ST 모나드) 구현이없는 이유가 있습니까? Data.Vector.Mutable과 동일하지만 모양이 있습니다.

  • 이와 관련하여 동적 프로그래밍 알고리즘 (배열 요소는 배열의 다른 요소에서 계산 됨)을 박스 화되지 않은 표현으로 구현하는 방법은 무엇입니까?

답변

5

Repa는 대량 데이터 병렬 프로그래밍을 위해 설계되었습니다. 임의의 순서로 배열 요소를 계산할 수 있어야합니다. 그렇지 않으면 Repa 평가 메소드가 작동하지 않습니다.

다른 배열 요소를 기반으로 배열 요소를 파괴적으로 업데이트하려는 경우 평가 순서가 제한됩니다. 대량 데이터 병렬 방식으로 알고리즘을 표현할 수 없다면 Repa가 도움이되지 않습니다.

+2

병렬 처리가 없어도 repa 'shape'인터페이스 때문에 여전히 유용한 기능입니다. 그렇지 않으면 거대한 클래스의 알고리즘을 위해 이전 Data.Array를 사용해야합니다. –