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