好吧,我正在做一个问题,我使用的函数有一个严格的变量.我有一个使用数组来解决这个问题的想法.所以我想到使用与我正在创建的函数具有相同刚性变量的数组,但我不知道如何使用刚性变量创建数组.我试过以下的东西,但没有效果:
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)] )
Run Code Online (Sandbox Code Playgroud)
我得到的错误是严格的变量.有什么可能的解决方案?请给出如何使用刚性变量制作数组的想法,例如我使用的以下函数中的变量