iT邦幫忙

functional programming相關文章
共有 288 則文章
鐵人賽 Software Development DAY 10
Functional Programming with C# 系列 第 10

技術 Day10. ImmutableCollection

昨天的例子其實不需要特別轉成ImmutableList,因為linq的操作本身就具有不可變的概念,不可變得集合在多執行緒的時候具有很大的優勢,我們不需要考慮當共...

鐵人賽 Software Development DAY 9

技術 Day9. Linq and Immutable

先從一個小故事開始 我記得我剛開始學C#的時候,先碰到了迴圈,假設有一個數列,我希望將數列中的每一項加1: var array = new int[] { 1,...

鐵人賽 Modern Web DAY 18

技術 Day 18:什麼是純函式 ?(5):結語

在這邊我們再次針對純函式做個簡單的整理,一個函式若要成立純函式需要包含以下特性: 一定要傳入參數 不帶有自身的狀態 回傳值只依賴傳入的參數 函式本身不會對其他...

鐵人賽 Modern Web DAY 6

技術 蜜糖毒藥:再見Functional Programming

一個人的蜜糖,可能是另一個人的毒藥 Lucretius 正如第二天所說的,宣告式典範(declarative paradigm)與命令式典範(imperat...

鐵人賽 Modern Web DAY 5

技術 過氣網紅:Class

舊觀念組成新結構,這些結構形成新觀念,新觀念不斷復合,並無休止地持續下去,越來越遠離每個人的最原始的本質。這就是人類思維的運作方式。 Douglas R. H...

鐵人賽 Modern Web DAY 17

技術 Day 17:什麼是純函式 ?(5):宣告式程式設計

在自己學習程式語言時,不斷會在技術文件或是技術書籍中看到以下關鍵字,凡舉:「物件導向設計(Object-oriented programming,常縮寫為 OO...

鐵人賽 Software Development DAY 8

技術 Day8. 試試看用函數思考

今天來試試看函數式的思考吧,碎念一下當初選這個題目是因為發現自己OO中毒,沒有繼承不會寫程式。想要深入學習的FP話推薦Haskell趣學指南,我就拿裡面的題目來...

鐵人賽 Software Development DAY 7

技術 Day7. Closure

Closure(閉包)是一種特殊的函數,可以讀取外面環境中的資料,而外部無法修改函數內部的資料。這樣的介紹有如天書,實際上Closure是一個C#工程師幾乎天天...

鐵人賽 Modern Web DAY 4

技術 摯友:Array(2/2)

每個複雜的問題,都有個簡單的解法。這句話簡直錯得離譜。 Umberto Eco 此文討論Array為主,但可能會牽扯些許Object。 今天老闆不在,就來聊...

鐵人賽 Modern Web DAY 16

技術 Day 16:什麼是純函式 ?(4):Impure Function

在先前的章節中,我們花了很多的篇幅來介紹純函式與副作用(Side Effects)的定義,這對我們來了解 Impure Function 會非常有幫助! 那什麼...

鐵人賽 Modern Web DAY 3

技術 摯友:Array(1/2)

唯有全然的了解,才有資格說愛或恨。 Leonardo da Vinci 此文討論Array為主,但可能會牽扯些許Object。 如果你跟JS打交道一段時間,...

鐵人賽 Software Development DAY 6

技術 Day6. Currying

昨天談到利用委派把函數最為另一個函數的參數,不知道大家有沒有注意到一見事情,當透過委派傳遞的時候,函數的內容其實並不馬上被執行。當我們傳遞委派的時候,目的是希望...

鐵人賽 Modern Web DAY 15

技術 Day 15:什麼是純函式 ?(3):副作用

在先前的章節中,我們在說明究竟什麼是純函式時,不斷提到一個關鍵字「副作用(Side Effects)」,且在純函式中,我們極力避免產生副作用。 那麼什麼是副作用...

鐵人賽 Modern Web DAY 2

技術 信仰:初見Funtional Programming

我的心、我這一生都在追求一個東西:一個無以名狀的東西。 André Breton 前言 某種程度上,Javascript ES6(JS)提供了一種多典範多風...

鐵人賽 Software Development DAY 3
大閘蟹料理指南(rust) 系列 第 3

技術 [D3] 讓程式跑起來

這一篇應該對於程式老手來說駕輕就熟. 只是就自己心血rust的心得稍微琢磨在這些程序控制相關的部分. Condition if else if else 與一般...

鐵人賽 Modern Web DAY 14

技術 Day 14:什麼是純函式 ?(2):抽象化

在前一章節中,我們聊到如何透過撰寫純函式,來幫我們的函式進行優化。 然而在剛開始寫程式時,我其實很難將函式中一些重複性的概念抽離出來,於是會寫出一些「過於流程化...

鐵人賽 Software Development DAY 5

技術 Day5. Higher Order Function

再把map方法貼過來一次 public static Option Map<TSource, TResult>(this Option source...

鐵人賽 Modern Web DAY 13

技術 Day 13:什麼是純函式 ?(1):單輸入單輸出

純函式(Pure Funciton)在 FP 中是一個很核心的概念,在 FP 這個設計典範中,我們都會使用純函式的方式來撰寫我們的程式碼。 首先讓我們來看看純函...

鐵人賽 Software Development DAY 4

技術 Day4. Pattern Match

第一次聽到Pattern,我以為是設計模式,難以理解為什麼都是pattern好像在講兩件事。這邊的模式意謂資料的型態,FP的函數需要關注的是輸入的資料格式,然後...

鐵人賽 Software Development DAY 3

技術 Day3. Option

昨天講到了定義域,今天換來討論值域。理想上一個方法都希望有一個回傳值,但現實中很難做到,就算已經在先驗條件中把所有未定義的輸入都排除了,仍然會有狀況是導致沒辦法...

鐵人賽 Modern Web DAY 12

技術 Day 12 :何謂 Immutable Data?(4):結語

在先前的章節中,我們認真地探討了有關 JavaScript 有關記憶體傳值、傳參考的核心概念,其會依據我們操作物件的手法不同,而導致資料會出現 Mutable...

鐵人賽 Modern Web DAY 11

技術 Day 11 :何謂 Immutable Data?(3):更新陣列

在前面的章節中,我們提到如何透過 Immutable 的方式來更新物件的值,那我們又該如何透過 Immtable 的方式來更新陣列的資料呢? 在切入到重點以前,...

鐵人賽 Software Development DAY 2

技術 Day2. 函數的定義域與值域

1. 函數是什麼? 我們先回到昨天的程式碼: int pi = 3.14159; 相信大家看一眼就知道,如果把3.14159放到一個int型別的參數,程式理所...

鐵人賽 Modern Web DAY 10

技術 Day 10 :何謂 Immutable Data?(2):更新物件

在討論如何使用 Immutable 的方式來操作物件的狀態前,讓我們來思考另外一個狀況:還記得前端常常考的面試題淺拷貝、深拷貝嗎? 在這邊我們不會以深拷貝、淺拷...

鐵人賽 Modern Web DAY 9

技術 Day 9 :何謂 Immutable Data?(1):關於 Immutable 與 Mutable(修正版)

在一開始的簡介中我們曾經聊過構成 FP 的幾個要素,其中一點是,在 FP 這個設計典範中我們只使用 Immutable Data 來進行資料的處理。 為什麼「只...

鐵人賽 Modern Web DAY 8

技術 Day 8 :JavaScript 型別與他們的地雷(5):結語

截至這個章節,我們大致上把要應用 FP 所需要、也最基礎的 JavaScript 概念了解過一遍了,當然在 後的章節中,我們還會把先前所提到的概念往更進階的延伸...

鐵人賽 Modern Web DAY 6

技術 Day 6 :JavaScript 型別與他們的地雷(3):函式是一等公民

說到 Functional Programming,其實我們不難發現這個設計模式基本上就是以「函式」作為主軸。 函式在 FP 中可以說是核心概念,就像先前所提到...

鐵人賽 Software Development DAY 2

技術 Kotlin 作為 Server Side 開發語言 - Day2

第二天來談談為何要採用 Koltin。Kotlin 現在已經廣泛的被 Java 框架例如 Spring Boot, Quarkus 所支援。Thinking...

鐵人賽 Modern Web DAY 5

技術 Day 5:JavaScript 型別與他們的地雷(2):{ } === { } ?

在上個章節,我們聊到 JavaScript 其實是一種非常容易、不小心就變動到變數值的一種語言,這其實與它底層運作的記憶體位置有關,這說起來有點抽象,我們先來看...

鐵人賽 Modern Web DAY 4

技術 Day 4 :JavaScript 型別與他們的地雷(1): 基本型別與物件

在了解 FP 與 JavaScript 的歷史之後,有沒有覺得:「咦?設計模式其實也沒有離自己那麼遠嘛!」在繼續深入了解 FP 之前,讓我們來看看 JavaSc...