最近在學 typelevel/cats 底下這一行程式碼,想了兩天才理解為什麼要寫成這樣,Functional Programming真的是太困難了,有點回到大一學遞迴的感覺。

img

(Either[Throwable, A]) => Unit) 是一個 Callback function / Listener interface , (CB => Unit) 表示這個 Callback function 可以在不同的 Thread 執行。

為什麼要寫成這樣?我還在想….