iT邦幫忙

functional programming相關文章
共有 288 則文章
鐵人賽 Software Development DAY 9
Should I use fp-ts 系列 第 9

技術 [Should I use fp-ts?] Day 09 - fp-ts: Option flatten, flatMap(chain)

在本系列文中,所有的程式碼以及測試都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-09 並且有習題和測試可以讓大家練習。...

鐵人賽 Software Development DAY 24
Should I use fp-ts 系列 第 24

技術 [Should I use fp-ts?] Day 24 - fp-ts Array

在本系列文中,所有的程式碼都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-24 並且有測試可以讓大家練習。 Array A...

鐵人賽 Software Development DAY 20

技術 能自由組合的解析器 Library (2)

從重複辨識找到第一個正式定律 繼續 昨天 的定律推敲,首先來想一下如何辨識 0 到 n 次的字元 'a', def many[A](p: Parser[A]):...

鐵人賽 Software Development DAY 9

技術 Strictness 和 Laziness (1)

想像一下你想要使用 List 來做一系列的資料操作, scala> List(1, 2, 3, 4).map(_ + 10).filter(_ % 2 =...

鐵人賽 Modern Web DAY 11

技術 currying柯里化

剛學js的時候,常常會看到自己難以理解的東西,比如說這個: function add(a) { return function (b) { retu...

鐵人賽 Software Development DAY 5
Should I use fp-ts 系列 第 5

技術 [Should I use fp-ts?] Day 05 - pointfree

在本系列文中,所有的程式碼以及測試都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-05 並且有習題和測試可以讓大家練習。...

鐵人賽 Software Development DAY 22
Should I use fp-ts 系列 第 22

技術 [Should I use fp-ts?] Day 22 - fp-ts Apply

在本系列文中,所有的程式碼都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-22 並且有測試可以讓大家練習。 Apply 使...

鐵人賽 Software Development DAY 25

技術 Functors

讓我們繼續從之前的程式中抽象出更高層的東西吧!今天要講的介面是 Functor。 Functors - map 的抽象介面 從 Day 3 開始,每個主題下的...

鐵人賽 Software Development DAY 13

技術 純粹的 functional 狀態 (2)

更多的練習 Exercise D13-1 用 RNG.nextInt 來產生非負的隨機數,範圍介於 0 <= r <= Int.maxValue。...

鐵人賽 Software Development DAY 16
Should I use fp-ts 系列 第 16

技術 [Should I use fp-ts?] Day 16 - fp-ts: Option apS

在本系列文中,所有的程式碼以及測試都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-16 並且有習題和測試可以讓大家練習。...

鐵人賽 Software Development DAY 14

技術 純粹的 functional 狀態 (3)

對最初的 rollDie function 有什麼影響 延續 昨天 最後設計的產生非負數且小於特定值的隨機數 nonNegativeLessThanViaFla...

鐵人賽 Software Development DAY 9
Haskell 從入門到放棄 系列 第 9

技術 [Haskell 從入門到放棄] Day 09 - 終於來到 higher order function

終於來到一個跟 FP 的核心概念有關的特性了,首先我們需要知道 Haskell 是具有 First-class function 這個特性,意思是指 func...

鐵人賽 Software Development DAY 25
Should I use fp-ts 系列 第 25

技術 [Should I use fp-ts?] Day 25 - fp-ts Array

[Should I use fp-ts?] Day 25 - fp-ts Array 在本系列文中,所有的程式碼都可以在 should-i-use-fp-ts...

鐵人賽 Software Development DAY 26
Haskell 從入門到放棄 系列 第 26

技術 [Haskell 從入門到放棄] Day 26 - Monad (4)

Monad Law 畢竟 monad 是來自於數學上的概念,所以就算某個type 實作了 Monad 的 instance ,嚴格定義上我們也不能說它是 m...

鐵人賽 Software Development DAY 10
Should I use fp-ts 系列 第 10

技術 [Should I use fp-ts?] Day 10 - fp-ts: Option getOrElse, getOrElseW

在本系列文中,所有的程式碼以及測試都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-10 並且有習題和測試可以讓大家練習。...

鐵人賽 Software Development DAY 28

技術 Applicative Functors (1)

今天要介紹一個功能沒有 Monad 這麼強,但比較泛用的抽象介面,Applicative Functors, 在 Day 26 - Monads (1) 中,我...

鐵人賽 Software Development DAY 27
Haskell 從入門到放棄 系列 第 27

技術 [Haskell 從入門到放棄] Day 27 - newtype

newtype 大概在之前的 monoid 的時候有提到過這個語法。 getProduct $ Product 1 `mappend` Product 2 `...

鐵人賽 Software Development DAY 20
Should I use fp-ts 系列 第 20

技術 [Should I use fp-ts?] Day 20 - fp-ts Either trycatch

在本系列文中,所有的程式碼都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-20 並且有測試可以讓大家練習。 Either...

鐵人賽 Software Development DAY 14
Should I use fp-ts 系列 第 14

技術 [Should I use fp-ts?] Day 14 - fp-ts: Option Do

在本系列文中,所有的程式碼以及測試都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-14 並且有習題和測試可以讓大家練習。...

鐵人賽 Software Development DAY 13
Should I use fp-ts 系列 第 13

技術 [Should I use fp-ts?] Day 13 - fp-ts: Option fromNullable, fromPredicate

在本系列文中,所有的程式碼以及測試都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-13 並且有習題和測試可以讓大家練習。...

鐵人賽 Software Development DAY 11

技術 Strictness 和 Laziness (3)

LazyList 細部處理拆解 講進階用法之前,先來看一下 LazyList 是怎麼處理 LazyList(1, 2, 3, 4).map(_ + 10).fi...

鐵人賽 Software Development DAY 10
Haskell 從入門到放棄 系列 第 10

技術 [Haskell 從入門到放棄] Day 10 - 再談 higher order function

Filter filter 是傳入一個會回傳 Bool 的 function 及 List,然後將 List 中每個元素丟進去 function 最後回傳所有執...

鐵人賽 Software Development DAY 19
Should I use fp-ts 系列 第 19

技術 [Should I use fp-ts?] Day 19 - fp-ts Either usage

在本系列文中,所有的程式碼以及測試都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-19 並且有測試可以讓大家練習。 Eit...

鐵人賽 Software Development DAY 29
Haskell 從入門到放棄 系列 第 29

技術 [Haskell 從入門到放棄] Day 29 - Monad (6)

State Monad 可能有讀者看到 state monad 這個名字時可能會想,Haskell 這樣的語言允許我們擁有 state 這種感覺應該是 muta...

鐵人賽 Software Development DAY 17

技術 Purely Function 的平行化 (3)

持續精煉我們的核心 API 讓我們開始實作其他核心 API 吧!以下為完整程式: import java.util.concurrent.* object P...

鐵人賽 Software Development DAY 30

技術 Applicative Functors (3)

Applicative Fuctor 定律 為求說明,以下回顧 Applicative Functor 的方法宣告會將所有參數完整呈現,故會與 Day 28...

鐵人賽 Software Development DAY 18
Should I use fp-ts 系列 第 18

技術 [Should I use fp-ts?] Day 18 - fp-ts Either type and constructor

在本系列文中,所有的程式碼以及測試都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-18 並且有測試可以讓大家練習。 Eit...

鐵人賽 Software Development DAY 20
Haskell 從入門到放棄 系列 第 20

技術 [Haskell 從入門到放棄] Day 20 - Applicative (2)

再談 Applicative 先看一下昨天最後的範例 import Control.Applicative let foo = fmap (*) [1..5...

鐵人賽 Software Development DAY 17
Should I use fp-ts 系列 第 17

技術 [Should I use fp-ts?] Day 17 - fp-ts: Option

在本系列文中,所有的程式碼以及測試都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-17 並且有習題和測試可以讓大家練習。...

鐵人賽 Software Development DAY 12
Haskell 從入門到放棄 系列 第 12

技術 [Haskell 從入門到放棄] Day 12 - lazy…evaluation…

今天要來介紹一個在 FP 中相當常見的特性 lazy evaluation (惰性求值) ,簡單來說就是當需要值的時候才會真正把值計算出來。 lazy eval...