MFR:用於列表/關聯數組操作的 JSL 函數程式庫我在開發大型 JSL 框架時開發了這個幫助程式庫。在編寫第n 個For() 循環來遍歷列表(並修復了與索引變數的意外破壞相關的許多錯誤)之後,我意識到如果我使用更高的值,程式碼看起來會更乾淨(並且更容易維護) - 層級抽象,如函數式程式設計中常用的抽象。
本函式庫實作了映射/過濾/歸約三重奏,可在 Python 和 JavaScript 等語言中使用,另外還有一些類似應用、歸約和比較等語言。它的靈感來自http://book.pythontips.com/en/latest/map_filter.html 。
檢查使用範例的測試,如果您發現錯誤或改進方法,請告訴我!
MFR(來自 Map-Filter-Reduce)是 JSL 的函數式程式設計原語庫。
包括基本測試。
靈感來自http://book.pythontips.com/en/latest/map_filter.html
分析應用開發公用事業回覆:MFR:用於列表/關聯數組操作的 JSL 函數程式庫自 Jmp 16 以來,大部分功能現已正式作為Filter Each、Transfrom Each提供...
非常好。
還有扁平化功能嗎?
回覆:MFR:用於列表/關聯數組操作的 JSL 函數程式庫謝謝, @jcperkins12 。很高興您發現它有用。
回覆:MFR:用於列表/關聯數組操作的 JSL 函數程式庫這對於它本身提供的功能以及 JSL 中的抽像模板都非常有用。感謝您發布此內容。
回覆:MFR:JSL 的函數式程式設計庫更新 (8/2019):新版本 (MFR2.zip) 透過新指令擴展了原始功能。此重寫使用類別而不是命名空間來使程式碼更清晰(並支援混合)。使用表達式運算而不是傳遞匿名函數來進行行為自訂(對每個容器元素做什麼)。 .zip 檔案包含測試和一個實現複合(多層密鑰)字典的實際應用程序,對於實現快取很有用。
以下是可用方法的清單:
Map:傳回替換輸入值後表達式求值的結果清單。
Map2dict:傳回替換輸入值後兩個表達式的求值結果的字典(關聯數組)。
化簡:傳回替換輸入值後表達式求值結果的累加。
過濾器:傳回給定列表中替換輸入值後表達式的計算結果為 true 的元素
Any:如果給定清單中的任何元素在用於表達式求值時產生真值,則傳回 1。
全部:如果給定清單中的任何元素在用於表達式求值時產生真值,則傳回 1。
Zip:將兩個相同長度的清單組合成一個由對應元素對組成的清單。不支援/定義關聯數組
應用:將表達式應用於輸入以產生副作用。
Flat:採用嵌套列表並傳回一個列表,其中所有元素都位於同一級別,保持原始順序
回覆:MFR:用於列表/關聯數組操作的 JSL 函數程式庫自 Jmp 16 以來,大部分功能現已正式作為Filter Each、Transfrom Each提供...
非常好。
還有扁平化功能嗎?