iT邦幫忙

functional programming相關文章
共有 358 則文章
鐵人賽 Software Development DAY 1

技術 序: AI 加速編碼後,你該學什麼?

Emacs 是一台 Lisp 機器,但偽裝成文字編輯器。 (Emacs 社群諺語) 身為一位 Clojure Programmer,我一直有個遺憾:Cloj...

鐵人賽 自我挑戰組 DAY 15

技術 Good Morning, Functional JS (Day 14, Pointfree 無點風格)

本系列文章,內容以探討 Kyle Simpson. Functional-Light JavaScript 一書內容為主 目標:是讀懂 FP,能用 code...

技術 Week20 - 用FP的Maybe來跟Null爆炸說再見吧! [高智能方程式系列]

本文章同時發佈於: Medium iT邦幫忙 大家好,這次要來跟大家介紹FP的Maybe,我不會介紹到Monad等太複雜的FP元素,會以 遇到...

鐵人賽 Software Development DAY 22

技術 再會, model

之前我們不斷的明示暗示 Phoenix 已經不太算是個 MVC framework 了 (雖然某些官方文件還是會用 MVC 這個字) 。最主要的原因,在於 20...

鐵人賽 自我挑戰組 DAY 6

技術 Good Morning, JS (Day 5, You don't know Functions 續)

本系列文章,內容以探討 Kyle Simpson. Functional-Light JavaScript 一書內容為主 目標:是讀懂 FP,能用 code...

鐵人賽 Software Development DAY 21

技術 沒有很 thin 的 Controller

前情提要 經由 Endpoint 的 pipeline 處理,並依 URI 進行分派之後,connection 將會傳到的 Controller 的個別函式中。...

鐵人賽 Software Development DAY 3

技術 mostly:functional 第二章: 泥板

「3 枝鉛筆加上 2 枝鉛筆是 5 枝鉛筆。那 3 個鈕扣加上 2 個鈕扣呢?」「5 個鈕扣。」「但是第一個問題是在說鉛筆,也許鈕扣會不一樣啊?」— Ron...

鐵人賽 Software Development DAY 24

技術 Monad: a Monoid in the Category of EndoFunctors

終於要來解釋這句話了,距離上一次出現這句話時,我們都還不知道 Monoid, Category, Endofunctor 是什麼,現在除了 Endofuncto...

鐵人賽 Software Development DAY 6

技術 Non-deterministic, side effect and Try

今天要來談談“意外”這件事,沒有人喜歡“意外”對吧?尤其是 PM 或是 QA 的神之手,有時候就是會給你“意外”的操作出一些 bug ,而你又重現不出來時,要怎...

鐵人賽 Software Development DAY 3

技術 Day 03 - Curry

yo, what's up? 今天要來介紹 Functional Programming 重要的概念,Curry. Curry 的功用? 我們先來看一個簡單的函...

鐵人賽 Software Development DAY 20

技術 Day 20 - Maybe Monad II (Piping)

Review 前一篇文章我們談到了如何實作一個 Maybe Monad,而其主要的功能就是處理無值的情境,今天我們要來介紹另外一種寫法去實作 Maybe Mon...

鐵人賽 Modern Web DAY 10
Javascript 從寫對到寫好 系列 第 10

技術 Day 10 - Functional Programming 初探 (3) - 實戰購物車流程

前言 這兩天花了滿多心力在介紹 FP 的觀念跟方法,但其實大部分都停留在理論,或者教科書上的那種 apple、banana 的練習,大家都是在職場上走跳的,把理...

鐵人賽 自我挑戰組 DAY 24

技術 Good Morning, Functional JS (Day 23, Immutability 值不可變性)

本系列文章,內容以探討 Kyle Simpson. Functional-Light JavaScript 一書內容為主 目標:是讀懂 FP,能用 code...

鐵人賽 Modern Web DAY 25

技術 Day 25:高階函數與複合函數(3):reduce 實用方法

在 FP 中,會發現我們其實沒有那麼常使用 for、forEach ,更多時候是使用 filter 與 map 陣列方法,因為在 FP 這個設計模式中,為了讓程...

鐵人賽 Software Development DAY 13

技術 Algebraic Data Type II

Algebraic Data Type 的 0 與 1 在數學中,我們都知道數字 0 ,0 乘任何數字都是 0 、 0 加上任何數字的話就是該數字本身 ,或是...

鐵人賽 Software Development DAY 14

技術 Sigil 及 Struct

Sigil 也是個鍊金術哏,中文的意思是「符文」。這個語法是為了統一各種情況所需的文字類表達式,並提供語言上擴充的空間,以符合各種不同領域的需求。 文字類表達式...

鐵人賽 自我挑戰組 DAY 9

技術 Good Morning, JS (Day 8, Spread and Gather)

本系列文章,內容以探討 Kyle Simpson. Functional-Light JavaScript 一書內容為主 目標:是讀懂 FP,能用 code...

鐵人賽 Software Development DAY 10

技術 集合: List, Tuple, Keyword List 及 Map

之前提過,在 OO 語言裡,認為資料及操作一群相關的資料的行為應該放在同一個地方,形成「物件」這種概念。 而在函數式編程裡,卻用完全不同的角度在看待資料結構以及...

鐵人賽 Software Development DAY 9

技術 More FlatMap : List and Try

今天再來講多一點 flatMap 的例子吧!首先從 List 開始! FlatMap for List 一樣先看例子,以下這個例子的目標是分解句子中的單字,其中...

鐵人賽 Software Development DAY 13

技術 條件分支,還有不是你以為的那個 for

江湖上總有個傳言,說函數式編程的神人不需要 if 跟 else,只要 map, filter, reduce 就可以把事情都做完了。我覺得這個傳言該是要有中文版...

鐵人賽 Modern Web DAY 28

技術 Day 28 :第三方函式庫 (3):從 Ramda.js 深入了解 JavaScript

與 Lodash.js 類似, Ramda.js 是一個專門以 FP 模式設計出來的函式庫,與 Lodash 不同的是,Ramda 所提供的函式預設就已經柯里化...

鐵人賽 自我挑戰組 DAY 16

技術 Good Morning, Functional JS (Day 15, Composition part 1)

本系列文章,內容以探討 Kyle Simpson. Functional-Light JavaScript 一書內容為主 目標:是讀懂 FP,能用 code...

鐵人賽 Software Development DAY 23

技術 Day 23 - Either Monad

到目前為止,我們介紹 Maybe Monad 其是專門處理無值情境以及 IO Monad 則是處理同步計算的 effect,例如 console.log, lo...

鐵人賽 Modern Web DAY 6

技術 Day 6 - Function 時空旅行 (1) - 參數優化

前言 Array 跟 Object 兩兄弟的故事告一段落了,接著是 Object 在外面養(?)的另外一個兄弟 - function 浪漫一點來說,functi...

鐵人賽 Modern Web DAY 9

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

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

技術 mostly:functional 謝幕與片尾曲

The future is already here – it's just not evenly distributed.未來早就來臨了,然而它並不是平均分...

鐵人賽 Software Development DAY 15

技術 mix 專案,與使用其它模組裡的函式

本篇將解釋 mix project 的基本概念,以及各種函式的呼叫方式。 mix mix 是 elixir 內建的多功能指令。它可以用來新建專案、安裝管理函式庫...

鐵人賽 Software Development DAY 5

技術 Day 05 - Ramda

yo, what's up Ramda 是一個 Functional Programming 的函式庫,而 Ramda 的所有函式都有自帶 currying....

鐵人賽 自我挑戰組 DAY 8

技術 Good Morning, JS (Day 7, 敲敲打打玩轉 function)

本系列文章,內容以探討 Kyle Simpson. Functional-Light JavaScript 一書內容為主 目標:是讀懂 FP,能用 code...

鐵人賽 Software Development DAY 19

技術 Curried function

前面看過兩次,今天終於要來介紹咖哩(誤)了,坦白說,在我的日常開發中並不會使用到這個概念,所以我沒辦法說服自己說,這是一個很方便的東西,以下到內容是我查閱資料整...