ocumentación de @STArray para novatos y preguntas relacionadas con el estado / ST
Tengo dificultades para entenderSTArray
de la documentación y otros procedimientos / discusión que he encontrado a través de Google. Tengo algunas preguntas más relacionadas a continuación.
De acuerdo con la documentación,STArray
s son
Matrices en caja y sin caja en la mónada ST.
Esto me dio la impresión de queSTArray
está destinado a ser utilizado comoestad que se pasa entre funciones (imagine que tiene un vector que debe actualizarse con frecuencia).
Aparentemente, esto se usa de manera diferente:
ST s (STArray s a e)
¿Cuál es el estados
¿aquí? Si se usa internamente, ¿por qué esto no está oculto para el usuario?
Esto también significa, si queremos usar unSTArray s Int Int
siendo pasado como estado, uno definiría
type StateArray a = Control.Monad.State (ST s (STArray s Int Int)) a
que parece bastante engorroso.
Finalmente
Cuál es la diferencia entreST
yState
?Cuál es la diferencia entreSTArray
yIOArray
, Si elST
yIO
están destinados para uso "interno"?¡¡Gracias!