在C/C++中,我們使用指針和類似的東西在解析大量字符時節省內存。 Haskell會用到嗎?我見過一些解析器實現接受/返回Haskell中的「剩餘要解析的字符」 - 編譯器是否負責傳遞大量內存?提前致謝!通過列表中的指針定義解析器還是遞歸地傳遞列表會更高效?
回答
是的,Haskell會使用同樣的想法;然而,GHC很容易,因爲所有(盒裝)值都是以開頭的指針。所以你不需要做任何特殊的事情來利用這個常見的技巧......只需編寫你的代碼。
盒裝值?是否有任何設計haskell代碼的文檔符合這個要求,ghc可以利用它? –
@AnhanClark默認情況下,你處理的所有東西都是裝箱的。您必須努力工作(並啓用語言擴展並導入帶有GHC名稱的低級模塊)才能具有未裝箱的值。 –
@AnhanClark ......也就是說,不,沒有關於如何製作盒裝值的文檔,因爲這很容易做。所有的文件都是關於如何超越規範,並啓用瘋狂的東西。 –
- 1. 鏈接列表插入函數 - 通過指針傳遞列表
- 2. Haskell - 通過列表列表遞歸?
- 3. 正確地通過遞歸傳遞指針的值
- 4. 傳遞列表列表迭代器作爲指針C++
- 5. 錯誤 - 通過傳遞列表遞歸函數調用 - OCaml的
- 6. 遞歸或列表理解?
- 7. 遞歸列表理解[Haskell]
- 8. 在自定義指令中傳遞過濾列表angularjs
- 9. 遞歸列表
- 10. 遞歸列表
- 11. 如何通過遞歸進行列表?
- 12. Erlang中的遞歸列表分析
- 13. 反轉鏈接列表,傳遞指針的地址
- 14. 瞭解Prolog中的列表和遞歸
- 15. Python中的遞歸列表理解?
- 16. 傳遞指針陣列
- 17. 如何通過Python中的for循環傳遞列表列表?
- 18. Python:通過遞歸函數調用傳遞列表會導致列表變爲'NoneType',爲什麼?
- 19. Java是通過值傳遞還是通過引用傳遞?
- 20. Python列表遞歸
- 21. 遞歸與列表
- 22. 通過引用傳遞還是重新分配?哪個更好/更高效/ etc?
- 23. C++傳遞QDomDocument指針遞歸
- 24. c傳遞指針遞歸函數
- 25. 在Python中遞歸地擴展列表
- 26. 遞歸指針
- 27. 通過傳遞一個列表在Python中遞歸調用一個函數
- 28. 通過函數傳遞變量/列表
- 29. 通過函數python3.4傳遞列表windows
- 30. asp.net mvc。通過viewData傳遞列表
沒有如此大量的內存傳遞。當「剩餘要分析的字符」被傳遞時,實際傳遞的是指向列表的指針,而不是列表部分的副本。 –