さて、使用していた関数に固定変数があるという問題を解決していました。その問題に配列を使用するという考えがありました。そこで、作成中の関数と同じ固定変数を持つ配列を使用することを考えましたが、固定変数を持つ配列を作成する方法がわかりません。次のことを試しましたが、効果がありませんでした:
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 のような厳格な変数を持つ配列を作成する方法のアイデアを教えてください