昨天的例子其實不需要特別轉成ImmutableList,因為linq的操作本身就具有不可變的概念,不可變得集合在多執行緒的時候具有很大的優勢,我們不需要考慮當共...
先從一個小故事開始 我記得我剛開始學C#的時候,先碰到了迴圈,假設有一個數列,我希望將數列中的每一項加1: var array = new int[] { 1,...
在這邊我們再次針對純函式做個簡單的整理,一個函式若要成立純函式需要包含以下特性: 一定要傳入參數 不帶有自身的狀態 回傳值只依賴傳入的參數 函式本身不會對其他...
一個人的蜜糖,可能是另一個人的毒藥 Lucretius 正如第二天所說的,宣告式典範(declarative paradigm)與命令式典範(imperat...
舊觀念組成新結構,這些結構形成新觀念,新觀念不斷復合,並無休止地持續下去,越來越遠離每個人的最原始的本質。這就是人類思維的運作方式。 Douglas R. H...
在自己學習程式語言時,不斷會在技術文件或是技術書籍中看到以下關鍵字,凡舉:「物件導向設計(Object-oriented programming,常縮寫為 OO...
今天來試試看函數式的思考吧,碎念一下當初選這個題目是因為發現自己OO中毒,沒有繼承不會寫程式。想要深入學習的FP話推薦Haskell趣學指南,我就拿裡面的題目來...
Closure(閉包)是一種特殊的函數,可以讀取外面環境中的資料,而外部無法修改函數內部的資料。這樣的介紹有如天書,實際上Closure是一個C#工程師幾乎天天...
每個複雜的問題,都有個簡單的解法。這句話簡直錯得離譜。 Umberto Eco 此文討論Array為主,但可能會牽扯些許Object。 今天老闆不在,就來聊...
在先前的章節中,我們花了很多的篇幅來介紹純函式與副作用(Side Effects)的定義,這對我們來了解 Impure Function 會非常有幫助! 那什麼...
唯有全然的了解,才有資格說愛或恨。 Leonardo da Vinci 此文討論Array為主,但可能會牽扯些許Object。 如果你跟JS打交道一段時間,...
昨天談到利用委派把函數最為另一個函數的參數,不知道大家有沒有注意到一見事情,當透過委派傳遞的時候,函數的內容其實並不馬上被執行。當我們傳遞委派的時候,目的是希望...
在先前的章節中,我們在說明究竟什麼是純函式時,不斷提到一個關鍵字「副作用(Side Effects)」,且在純函式中,我們極力避免產生副作用。 那麼什麼是副作用...
我的心、我這一生都在追求一個東西:一個無以名狀的東西。 André Breton 前言 某種程度上,Javascript ES6(JS)提供了一種多典範多風...
這一篇應該對於程式老手來說駕輕就熟. 只是就自己心血rust的心得稍微琢磨在這些程序控制相關的部分. Condition if else if else 與一般...
在前一章節中,我們聊到如何透過撰寫純函式,來幫我們的函式進行優化。 然而在剛開始寫程式時,我其實很難將函式中一些重複性的概念抽離出來,於是會寫出一些「過於流程化...
再把map方法貼過來一次 public static Option Map<TSource, TResult>(this Option source...
純函式(Pure Funciton)在 FP 中是一個很核心的概念,在 FP 這個設計典範中,我們都會使用純函式的方式來撰寫我們的程式碼。 首先讓我們來看看純函...
第一次聽到Pattern,我以為是設計模式,難以理解為什麼都是pattern好像在講兩件事。這邊的模式意謂資料的型態,FP的函數需要關注的是輸入的資料格式,然後...
昨天講到了定義域,今天換來討論值域。理想上一個方法都希望有一個回傳值,但現實中很難做到,就算已經在先驗條件中把所有未定義的輸入都排除了,仍然會有狀況是導致沒辦法...
在先前的章節中,我們認真地探討了有關 JavaScript 有關記憶體傳值、傳參考的核心概念,其會依據我們操作物件的手法不同,而導致資料會出現 Mutable...
在前面的章節中,我們提到如何透過 Immutable 的方式來更新物件的值,那我們又該如何透過 Immtable 的方式來更新陣列的資料呢? 在切入到重點以前,...
1. 函數是什麼? 我們先回到昨天的程式碼: int pi = 3.14159; 相信大家看一眼就知道,如果把3.14159放到一個int型別的參數,程式理所...
在討論如何使用 Immutable 的方式來操作物件的狀態前,讓我們來思考另外一個狀況:還記得前端常常考的面試題淺拷貝、深拷貝嗎? 在這邊我們不會以深拷貝、淺拷...
在一開始的簡介中我們曾經聊過構成 FP 的幾個要素,其中一點是,在 FP 這個設計典範中我們只使用 Immutable Data 來進行資料的處理。 為什麼「只...
截至這個章節,我們大致上把要應用 FP 所需要、也最基礎的 JavaScript 概念了解過一遍了,當然在 後的章節中,我們還會把先前所提到的概念往更進階的延伸...
說到 Functional Programming,其實我們不難發現這個設計模式基本上就是以「函式」作為主軸。 函式在 FP 中可以說是核心概念,就像先前所提到...
第二天來談談為何要採用 Koltin。Kotlin 現在已經廣泛的被 Java 框架例如 Spring Boot, Quarkus 所支援。Thinking...
在上個章節,我們聊到 JavaScript 其實是一種非常容易、不小心就變動到變數值的一種語言,這其實與它底層運作的記憶體位置有關,這說起來有點抽象,我們先來看...
在了解 FP 與 JavaScript 的歷史之後,有沒有覺得:「咦?設計模式其實也沒有離自己那麼遠嘛!」在繼續深入了解 FP 之前,讓我們來看看 JavaSc...