Haskell中是否存在有效的固定大小列表庫?我認爲IArray
接口有點複雜,當一個人只想要由自然數[包括零]索引的數組。我想寫代碼如Haskell中的固定大小列表(即具有類列表API的數組)
zeroToTwenty :: Int -> FixedList Int
zeroToTwenty 0 = createFixedList 21 []
zeroToTwenty n = zeroToTwenty (n-1) `append` n
我的天真解決方案如下。
編輯:對不起,缺乏上下文的;我想要一個可以分配一次的數據結構,以避免過多的垃圾回收。這是在合併排序的merge
例程的上下文中,它採用兩個排序的子列表並生成單個排序列表。
你對這個數據類型的期望是什麼,列表不給你?是O(1)索引嗎?你願意去換取O(1)索引嗎? – augustss 2011-06-14 13:10:36
@augustss查看編輯 – gatoatigrado 2011-06-14 20:09:26
那麼,我仍然不知道你期望什麼操作。一次分配的東西也必須在Haskell中一次性填充內容。除非你想使用可變數據結構。 – augustss 2011-06-14 20:20:48