為什麼函式式程式設計不用陣列

2021-10-02 15:15:26 字數 419 閱讀 9280

鍊錶是遞迴的資料結構,在上面的操作大部分可以用它的eliminator完成,最終效果就是數學歸納法

因為函式式程式設計中大量的迴圈操作是依賴遞迴(和map)的,雖然map也是由遞迴實現的

而這時候用鍊錶這種遞迴定義的資料結構就是一種自然而然的事情了。

但可達鴨眉頭一皺,發現事情並不簡單

實際上,將鍊錶換成陣列也是能夠正常使用的。但為什麼我們還廣泛的使用鍊錶呢?

因為在pure的環境下,對於陣列的增改操作需要重新構造陣列,一旦陣列變大,代價將變得不可承受

對於陣列的訪問操作,我們通過「樸素的直覺方法」我們可以自然的想到兩種方法:通過對陣列切片和維護乙個迭代器,用切片自然是不可行的,因為會構造大量的陣列,這也是嚴重影響效率的。

所以那就只剩下迭代器能用了撒

為什麼不用Dojo?

不用dojo,原因可能有很多,但是主要的就是 2.dojo的外觀精細度遠不如extjs,extjs的操作更windows一些。3.dijit的widget不如extjs的功能多,使用dojo很多時候你不得不自己編制乙個擴充套件widget。可能更多的原因,還是比較喜歡 拿來就用 不喜歡自己程式設計。...

什麼是函式式程式設計

1 函式式程式設計 它屬於 結構化程式設計 的一種,主要思想是把運算過程盡量寫成一系列巢狀的函式呼叫。函式程式語言最重要的基礎是 演算 lambda calculus 而且 演算的函式可以接受函式當作輸入 引數 和輸出 返回值 補充 lambda演算是通過乙個函式來解決這個問題,而這個函式又是由一系...

什麼是函式式程式設計

通過把大段 拆成函式,通過一層一層的函式呼叫,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程式設計。函式就是面向過程的程式設計的基本單元。而函式式程式設計 注意多了乙個 式 字 functional programming,雖然也可以歸結到面向過程的程式設計,但其思想更接近數學計算...