2013-07-24 15 views
0

在C/C++中,我們使用指針和類似的東西在解析大量字符時節省內存。 Haskell會用到嗎?我見過一些解析器實現接受/返回Haskell中的「剩餘要解析的字符」 - 編譯器是否負責傳遞大量內存?提前致謝!通過列表中的指針定義解析器還是遞歸地傳遞列表會更高效?

+4

沒有如此大量的內存傳遞。當「剩餘要分析的字符」被傳遞時,實際傳遞的是指向列表的指針,而不是列表部分的副本。 –

回答

5

是的,Haskell會使用同樣的想法;然而,GHC很容易,因爲所有(盒裝)值都是以開頭的指針。所以你不需要做任何特殊的事情來利用這個常見的技巧......只需編寫你的代碼。

+0

盒裝值?是否有任何設計haskell代碼的文檔符合這個要求,ghc可以利用它? –

+0

@AnhanClark默認情況下,你處理的所有東西都是裝箱的。您必須努力工作(並啓用語言擴展並導入帶有GHC名稱的低級模塊)才能具有未裝箱的值。 –

+0

@AnhanClark ......也就是說,不,沒有關於如何製作盒裝值的文檔,因爲這很容易做。所有的文件都是關於如何超越規範,並啓用瘋狂的東西。 –