Para fines de almacenamiento en caché, quiero crear una matriz, que asigna los valores de entrada de la función a los valores de salida. Yo sé, que mi función se utilizará sólo en este rango específico, pienso en algo como esto:Cómo crear una matriz Haskell a partir de una función
MyType = ... deriving (Ix)
myFunction :: MyType -> foo
myCache = createArrayFromFunction (start,end) myFunction
Es esto posible o sólo debo pensar "no funcional" y no hay otra solución. Necesito arreglos, porque necesito O (1) acceso a los miembros y conozco su longitud desde el principio.
Esto es totalmente funcional (y lo hago con bastante frecuencia). De hecho, puede definir una función 'createArrayFromFunction' para que su código funcione. –