У меня есть эта функция в Haskell (я использую Haskell-SDL библиотека):Функциональный эквивалент итерация 2D-массив
pixel :: Surface -> Int16 -> Int16 -> Pixel -> IO Bool
pixel screen x y color
Я хочу использовать это, чтобы занять 2D-массив (или какой-либо другой вид структуры данных) и нарисуйте его на экране по одному пикселю за раз. Я изучил это с помощью forM_
, но не могу понять, как заставить его работать с аргументами x и y.
Я довольно новичок в Haskell и функциональном программировании в целом. Я прокладываю себе путь через еще один учебник Haskell, но эта проблема просто меня озадачила.
В случае, если это относится к решению, я пытаюсь написать raytracer. Он должен выполнить расчет для каждого пикселя, а затем записать этот пиксель на экран.
Вы еще не поняли, как представить 2D-массив в Haskell? – Gabe
Я считаю, что это можно сделать с помощью вложенных списков, например: [[1,2,3], [4,5,6], [7,8,9]] –
Haskell имеет собственные массивы различных типов, используя Вложенный список пикселей не является хорошей идеей. Проверьте мой ответ ниже. –