Non riesco a trovare alcuna informazione conclusiva sull'argomento. Ci sono un sacco di implementazioni di giochi Haskell là fuori, ma quelle che ho trovato sono piccoli giochi e non è chiaro se i loro approcci sono in scala. Allo stesso modo, ci sono molte informazioni riguardo al fatto di avere uno stato in un programma Haskell (principalmente usando la monade di Stato), ma molto poco sul fatto che l'efficienza di tali metodi sia paragonabile allo stato in un linguaggio imperativo.Quanto può essere efficiente lo stato di Haskell rispetto a C++, per giochi/simulazioni di stato?
Sto lavorando ad un simulatore che ha una grafica estremamente semplice, il che rende molto interessante lo sviluppo in Haskell. Tuttavia, voglio simulare il maggior numero possibile di entità, il che significa che l'efficienza è molto importante. Accetterei una piccola riduzione delle prestazioni al fine di utilizzare Haskell, ma temo che la natura di stato di questa simulazione renderà il codice Haskell un ordine di grandezza più lento dell'altra mia scelta, il C++.
Come afferma il titolo, come si confronta Haskell per questo tipo di applicazione? Suggerimenti per gli approcci da utilizzare in Haskell, oltre ai collegamenti ai programmi Haskell ad alte prestazioni implementati, sarebbero molto apprezzati.
Se è necessario un esempio più specifico di come devo mantenere lo stato, posso fornirne uno, ma basti pensare a un'enorme raccolta di coordinate che cambia radicalmente su ogni iterazione dovrebbe essere sufficiente.
Grazie!
Penso che la domanda così com'è sia troppo ampia. Dovrai avere un esempio specifico di qualcosa che consideri possibilmente problematico. –
@DonStewart Il problema consisteva nel fare in modo che Haskell si adattasse perfettamente a ciò che voglio fare prima di intraprendere settimane di apprendimento di monadi fantasiosi ecc. Per mettere insieme un punto di riferimento. Mi dispiace per la vaghezza! La tua risposta mi ha venduto dando a Haskell una possibilità per questo, quindi senza dubbio tornerò in futuro con domande più specifiche. – trolox