Blog Category: basic

Clojure transient data structure

2026-02-17 22:00:0020min
大多數時候,應用程式內為了不可變性造成的一些效能損失是可以接受的。然而,當效能變成一個非常重大的瓶頸時,無謂的複製可能就變成必須優化的開銷。 不可變範式中一體兩面的問題是,如何兼顧效能?在多數的函數式的編譯器中,會透過類似 `linked list` 的資料結構,盡可能的減少無謂的複製發生蘋率。而在 Clojure 當中,除了使用資料結構避免多餘的複製外,另外提出了 **transient** 這個方法。