Poszukuję sposobu uruchomienia dwóch obliczeń równolegle w ST-Monadzie. Buduję raczej dużą tablicę (używając STUArray) i chciałbym to zrobić równolegle.Równoległa mapa monad w Haskell? Coś jak parMapM?
tej pory znalazłem this i this Q & tutaj na stackoverflow, jednak pierwszy nie ma zastosowania w moim przypadku, ponieważ dotyczy tylko czysty kod i drugich zajmuje się monady IO - ale jestem w wątek stanu.
Znalazłem również pakiet monad-parallel, ale wymaga on wystąpienia instancji "MonadParallel" dla ST. Również pakiet monad-par obsługuje tylko czyste obliczenia lub monadę IO.
Czy istnieje sposób wykonywania równoległych monadycznych obliczeń w ST?
Tworzenie dużej macierzy w równoległych dźwiękach, takich jak najlepiej zrobione w czystym kodzie zamiast ST. Nie przypuszczam, że mógłbyś podać trochę więcej informacji o tym, co chcesz umieścić w każdej komórce i dlaczego chcesz używać ST? Mogą wystąpić problemy, na przykład, jeśli uruchamiasz osobne akcje w monadach ST dla każdej komórki, to naprawdę nie da się tego zrobić w prosty sposób, ponieważ (inaczej niż IO) ST naprawdę nie dostarcza prymitywów do komunikacji między wątkami. – DarkOtter