Массивы с жесткой переменной
Ну, я делал проблему, в которой у функции, которую я использовал, была жесткая переменная. У меня была идея использовать массивы для этой проблемы. Поэтому я подумал об использовании массивов с той же жесткой переменной, что и у создаваемой мной функции, но я понятия не имею, как создать массив с жесткой переменной. Я попробовал следующее, но безрезультатно:
rearrange :: [Int] -> [a] -> [a]
rearrange l la = elems (f 1 posarr)
where
b = length l
listarr :: Array Int Int
listarr = listArray (1,b) l
arra :: Array Int c
arra = listArray (1,b) la
posarr :: Array Int c
posarr = listArray (1,b) la
f i posarr
| (b < i) = posarr
| otherwise = f (i+1) (posarr // [(listarr!i,arra!i)] )
Ошибка, которую я получаю, имеет жесткую переменную. Как это можно исправить? Пожалуйста, дайте представление о том, как создать массивы с жесткими переменными, такими как a, в следующей функции, которую я использовал