一進門,就看到矗立在大廳中央的雕像,有點像是箭頭,又有點像是管子。臺座周圍四散著一堆各自相異,但卻都比較短的箭頭。當我隨手拿起一個箭頭想看時,雕像一側呼吸般閃滅...
先複習一下上一篇的內容,一個 Monad,就是一種 Moniod ,而且中間有個特別的 operator ,而他,剛好就是我們熟悉的 flatMap 如下: M...
上一篇的解答: fun <D, A> List<Reader<D, A>>.liftReader(): Reader<...
還記得先前提到 Math.random 並非是純函式嗎,因為每次給定相同的輸入都會是不同的輸出回傳回來,那有什麼辦法可以讓它是回傳亂數,又可以是純函數呢? 沒錯...
在上一章,我們提到了 Functor,但更精準地說是 Covariant functor,而今天要提到的則是 Contravariant Functor,其定義...
yo, what's up Semigroup II 多組 Semigroup 進形合併 到目前為止我們已經知道 Semigroup 可以透過 concat 將...
梅賈德斯不是照人類傳統的時間來記戴,而是著眼在一個世紀發生的生活故事,一切同時存在於一瞬間。 -- 加布列·賈西亞·馬奎斯, 百年孤寂 又一次來到牆的前面...
Side effect operator 使用了 RxJava 之後,並沒有讓這邊的程式碼變得更複雜。但是,這邊有一件事需要被探討,在 LoginReposit...
以下是對於 MIT SICP 課程影片(lec 5b)的心得記錄,part 2 為 [31:00~ final] Part 1部分說到,把系統當中的物件與真實世...
在先前的章節中,我們在說明究竟什麼是純函式時,不斷提到一個關鍵字「副作用(Side Effects)」,且在純函式中,我們極力避免產生副作用。 那麼什麼是副作用...
當說到閉包時,大家會有什麼樣的想法呢?是覺得它不太會在日常開發中出現,所以很少用,還是單純把閉包當成是一個面試題而已? 經過先前的章節介紹,我們了解到其實 Ja...
在前面的章節中,我們提到如何透過 Immutable 的方式來更新物件的值,那我們又該如何透過 Immtable 的方式來更新陣列的資料呢? 在切入到重點以前,...
在後面幾個比較深的房間裡,我訝異的發現,那些短箭頭,還能夠進化成更加特別的形狀… const 在 Monoid 的章節裡,我們看過了 id 這個什麼事都不...
yo, what's up 又看到了這張熟悉的表了,想必大家都已經知道這章要來介紹什麼了, 但在這之前先來複習一下,兩個程式 f 與 g 如何進行 compos...
一樣是上次那個模仿 Maybe 行為的 type: -- Haskell 語法 data MightBe = NoThanks | Ok a deriving...
在之前的 Algebraic Data Type 中介紹了加法與乘法,也就是 Sum Type and Product Type,今天再來介紹另外一種 Alge...
我將真相刻在鋼板上,其餘的皆不可信。 -- 布蘭登·山德森, 迷霧之子:昇華之井 我注意到窗外有個告示板,或是加油站,又或是同為兩者的東西 告示板上寫著大...
在介紹 Task Monad 前,來介紹一個重要的概念, 想像一下,有一組陣列裡面的項目都是 userId,現在要將 userId 去做 http reques...
接下來處理另一個狀態, LoginFormState ,他也是一個擁有眾多不可能狀態的 Product Type : data class LoginFormS...
我們在乎的,不是你的類別,而是你的型別。用另一種方式講,我們不是那麼在乎你是哪一種人,而在乎你是什麼樣的人。 -- 唐鳳, RubyConf 座談, 2014...
在文章系列的尾聲,我們大致複習一下究竟什麼是 FP 呢?先前我們曾經提到過,透過 FP 設計模式產出的程式碼會有以下特色: 透過純函數(Pure Functi...
截至這個章節,我們大致上把要應用 FP 所需要、也最基礎的 JavaScript 概念了解過一遍了,當然在 後的章節中,我們還會把先前所提到的概念往更進階的延伸...
Introduction Type Signature of :: Applicative f => a -> f a Law Identit...
在先前的章節中,我們透過不同的工具及概念來讓大家理解 FP 在做些什麼事,舉例來說,在 Immutable 的章節我們大量使用 map 與 filter 的方法...
-- 0823 我試了好幾個數字,丟進去時都沒什麼反應。自暴自棄之下,我開始亂試,其中有幾個東西丟進去的時候,開孔很快的把東西噴回來。感覺好像是有點生氣了。 一...
在先前的章節中,我們認真地探討了有關 JavaScript 有關記憶體傳值、傳參考的核心概念,其會依據我們操作物件的手法不同,而導致資料會出現 Mutable...
在上一章,我們提到了如何用一般方法實作 PRNG 亂數生成器,本章將介紹 State Monad 以及改寫上一章的範例,廢話不多說讓我們看下去吧! Introd...
建築跟外觀一樣散發著新穎的氣息,而格局跟上一間也相當類似。而這次大廳中央放著兩座雕塑,兩個之間看起來幾乎是一樣的,只是其中一個比較長一點。而跟之前建築裡的相比,...
抱持著重開機的心情,我開始了我的第一堂課。 一開始是學員自我介紹跟課程講解。 稍微帶了一下程式語言,跟設計的概念。 來貼一下,我們的課程規劃。 這是一個chap...
箭頭函式 箭頭函式功能與一般函式的用法大致差不多,不過寫法卻比一般函式還要簡潔的多。這裡就直接來時做如何把一般函式改成箭頭函式,如此會比較好理解兩者之間的差異。...