iT邦幫忙

functional programming相關文章
共有 288 則文章
鐵人賽 Software Development DAY 26

技術 mostly:functional 第二十五章:Functor 的實體

一進門,就看到矗立在大廳中央的雕像,有點像是箭頭,又有點像是管子。臺座周圍四散著一堆各自相異,但卻都比較短的箭頭。當我隨手拿起一個箭頭想看時,雕像一側呼吸般閃滅...

鐵人賽 Software Development DAY 25

技術 Bind, Return and Monad laws

先複習一下上一篇的內容,一個 Monad,就是一種 Moniod ,而且中間有個特別的 operator ,而他,剛好就是我們熟悉的 flatMap 如下: M...

鐵人賽 Software Development DAY 17

技術 Composition, Abstraction and Principles

上一篇的解答: fun <D, A> List<Reader<D, A>>.liftReader(): Reader<...

鐵人賽 Software Development DAY 26

技術 Day 26 - State Monad I

還記得先前提到 Math.random 並非是純函式嗎,因為每次給定相同的輸入都會是不同的輸出回傳回來,那有什麼辦法可以讓它是回傳亂數,又可以是純函數呢? 沒錯...

鐵人賽 Software Development DAY 15

技術 Day 15 - Contravariant Functor

在上一章,我們提到了 Functor,但更精準地說是 Covariant functor,而今天要提到的則是 Contravariant Functor,其定義...

鐵人賽 Software Development DAY 13

技術 Day 13 - Semigroup II & Monoid

yo, what's up Semigroup II 多組 Semigroup 進形合併 到目前為止我們已經知道 Semigroup 可以透過 concat 將...

鐵人賽 Software Development DAY 30

技術 mostly:functional 第二十九章:Monad 的法則

梅賈德斯不是照人類傳統的時間來記戴,而是著眼在一個世紀發生的生活故事,一切同時存在於一瞬間。 -- 加布列·賈西亞·馬奎斯, 百年孤寂 又一次來到牆的前面...

鐵人賽 Software Development DAY 28

技術 Functional Programming in Practice - Part 2

Side effect operator 使用了 RxJava 之後,並沒有讓這邊的程式碼變得更複雜。但是,這邊有一件事需要被探討,在 LoginReposit...

技術 SICP Lec5b:計算對象 (數位電路模擬器 - part 2)

以下是對於 MIT SICP 課程影片(lec 5b)的心得記錄,part 2 為 [31:00~ final] Part 1部分說到,把系統當中的物件與真實世...

鐵人賽 Modern Web DAY 15

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

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

鐵人賽 Modern Web DAY 21

技術 Day 21 :什麼是 Currying(3)?JavaScript 閉包

當說到閉包時,大家會有什麼樣的想法呢?是覺得它不太會在日常開發中出現,所以很少用,還是單純把閉包當成是一個面試題而已? 經過先前的章節介紹,我們了解到其實 Ja...

鐵人賽 Modern Web DAY 11

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

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

鐵人賽 Software Development DAY 27

技術 mostly:functional 第二十六章:升格,再一次升格,然後再…

在後面幾個比較深的房間裡,我訝異的發現,那些短箭頭,還能夠進化成更加特別的形狀… const 在 Monoid 的章節裡,我們看過了 id 這個什麼事都不...

鐵人賽 Software Development DAY 18

技術 Day 18 - Chain

yo, what's up 又看到了這張熟悉的表了,想必大家都已經知道這章要來介紹什麼了, 但在這之前先來複習一下,兩個程式 f 與 g 如何進行 compos...

鐵人賽 Software Development DAY 27

技術 mostly:functional 第二十六章的試煉:Functor 的證明

一樣是上次那個模仿 Maybe 行為的 type: -- Haskell 語法 data MightBe = NoThanks | Ok a deriving...

鐵人賽 Software Development DAY 18

技術 Function type - Another Algebraic Data Type

在之前的 Algebraic Data Type 中介紹了加法與乘法,也就是 Sum Type and Product Type,今天再來介紹另外一種 Alge...

鐵人賽 Software Development DAY 13

技術 mostly:functional 第十二章:鐫刻的真相,狀態的琥珀

我將真相刻在鋼板上,其餘的皆不可信。 -- 布蘭登·山德森, 迷霧之子:昇華之井 我注意到窗外有個告示板,或是加油站,又或是同為兩者的東西 告示板上寫著大...

鐵人賽 Software Development DAY 24

技術 Day 24 - Travserable

在介紹 Task Monad 前,來介紹一個重要的概念, 想像一下,有一組陣列裡面的項目都是 userId,現在要將 userId 去做 http reques...

鐵人賽 Software Development DAY 29

技術 Functional Programming in Practice - Part 3

接下來處理另一個狀態, LoginFormState ,他也是一個擁有眾多不可能狀態的 Product Type : data class LoginFormS...

鐵人賽 Software Development DAY 19

技術 mostly:functional 第十八章:不同事物的相同部份

我們在乎的,不是你的類別,而是你的型別。用另一種方式講,我們不是那麼在乎你是哪一種人,而在乎你是什麼樣的人。 -- 唐鳳, RubyConf 座談, 2014...

鐵人賽 Modern Web DAY 29

技術 Day 29 :總結 & 那些未完待續的 FP

在文章系列的尾聲,我們大致複習一下究竟什麼是 FP 呢?先前我們曾經提到過,透過 FP 設計模式產出的程式碼會有以下特色: 透過純函數(Pure Functi...

鐵人賽 Modern Web DAY 8

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

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

鐵人賽 Software Development DAY 17

技術 Day 17 - Applicative

Introduction Type Signature of :: Applicative f => a -> f a Law Identit...

鐵人賽 Modern Web DAY 23

技術 Day 23 :高階函數與複合函數(1):進階的函數應用

在先前的章節中,我們透過不同的工具及概念來讓大家理解 FP 在做些什麼事,舉例來說,在 Immutable 的章節我們大量使用 map 與 filter 的方法...

鐵人賽 Software Development DAY 21

技術 mostly:functional 第二十章:Semigroup 的實體

-- 0823 我試了好幾個數字,丟進去時都沒什麼反應。自暴自棄之下,我開始亂試,其中有幾個東西丟進去的時候,開孔很快的把東西噴回來。感覺好像是有點生氣了。 一...

鐵人賽 Modern Web DAY 12

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

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

鐵人賽 Software Development DAY 27

技術 Day 27 - State Monad II

在上一章,我們提到了如何用一般方法實作 PRNG 亂數生成器,本章將介紹 State Monad 以及改寫上一章的範例,廢話不多說讓我們看下去吧! Introd...

鐵人賽 Software Development DAY 29

技術 mostly:functional 第二十八章:Applicative 的實體

建築跟外觀一樣散發著新穎的氣息,而格局跟上一間也相當類似。而這次大廳中央放著兩座雕塑,兩個之間看起來幾乎是一樣的,只是其中一個比較長一點。而跟之前建築裡的相比,...

鐵人賽 自我挑戰組 DAY 8

技術 Day 8 善泳者溺,其實不善泳者,溺的更快.....

抱持著重開機的心情,我開始了我的第一堂課。 一開始是學員自我介紹跟課程講解。 稍微帶了一下程式語言,跟設計的概念。 來貼一下,我們的課程規劃。 這是一個chap...

鐵人賽 自我挑戰組 DAY 14
開始入坑網頁吧! 系列 第 14

技術 JavaScript Arrow Function(箭頭函式)

箭頭函式 箭頭函式功能與一般函式的用法大致差不多,不過寫法卻比一般函式還要簡潔的多。這裡就直接來時做如何把一般函式改成箭頭函式,如此會比較好理解兩者之間的差異。...