Tengo esta función en Haskell (estoy usando la biblioteca de Haskell-SDL):equivalente funcional a la iteración en una matriz 2D
pixel :: Surface -> Int16 -> Int16 -> Pixel -> IO Bool
pixel screen x y color
quiero usar esto para tomar una Arreglo 2D (u otro tipo de estructura de datos) y dibujarlo en la pantalla, un píxel a la vez. Intenté hacerlo con forM_
pero no puedo encontrar la manera de hacerlo funcionar con los argumentos xey.
Soy bastante nuevo para Haskell y la programación funcional en general. Estoy trabajando en el tutorial de Yet Another Haskell, pero este problema me tiene perplejo.
En caso de que sea relevante para la solución, estoy tratando de escribir un raytracer. Tiene que realizar un cálculo para cada píxel y luego escribir ese píxel en la pantalla.
¿Ya has descubierto cómo representar una matriz 2D en Haskell? – Gabe
Creo que se podría hacer con listas anidadas, como por ejemplo: [[1,2,3], [4,5,6], [7,8,9]] –
Haskell tiene arreglos adecuados de varios tipos, utilizando un lista anidada de píxeles no es una buena idea. Verifique mi respuesta a continuación. –