2013-01-04 9 views
6

Due domande correlate.Programmazione dinamica in repa

  • C'è un motivo per cui non v'è mutabile (ST monade) attuazione di repa array? Equivalente a Data.Vector.Mutable ma con una forma.

  • In relazione a ciò, come si suppone di implementare algoritmi di programmazione dinamica (elementi di array calcolati da altri elementi della matrice stessa) nella rappresentazione non in scatola?

risposta

5

Repa è progettato per la programmazione parallela di dati di massa. Deve essere possibile calcolare gli elementi dell'array in ordine arbitrario, altrimenti i metodi di valutazione Repa non funzioneranno.

Se si desidera aggiornare in modo distruttivo un elemento di matrice in base ad altri elementi di matrice, questo limita l'ordine di valutazione. Se non riesci ad esprimere il tuo algoritmo in modo parallelo in modo parallelo, Repa non ti aiuterà.

+2

Sarebbe comunque una caratteristica utile avere, anche in assenza di parallelismo, un'interfaccia repa 'shape'. Altrimenti si è costretti a usare il vecchio Data.Array per un'enorme classe di algoritmi. –