Daftar ukuran tetap di Haskell (yaitu larik dengan API seperti daftar)

Apakah ada pustaka daftar ukuran tetap yang efisien di Haskell? Saya pikir antarmuka IArray agak rumit ketika seseorang hanya ingin array diindeks oleh bilangan asli [termasuk nol]. Saya ingin menulis kode seperti

zeroToTwenty :: Int -> FixedList Int
zeroToTwenty 0 = createFixedList 21 []
zeroToTwenty n = zeroToTwenty (n-1) `append` n

solusi naif saya ada di bawah.

Edit : Maaf atas kurangnya konteks; Saya ingin struktur data yang dapat dialokasikan satu kali, untuk menghindari pengumpulan sampah yang berlebihan. Ini terjadi dalam konteks merge rutin untuk merge sort, yang mengambil dua sublist yang diurutkan dan menghasilkan satu daftar yang diurutkan.

6
задан gatoatigrado 14 June 2011 в 20:09
поделиться