自動播放
自動完成
前一個課程
完成並前往下一段課程
工作上用得到的函數式程式設計
投影片及補充教材
投影片
範例程式碼
Part 0 - 簡潔的程式碼與世界觀
簡介 (10:26)
函式裡面有什麼 part 1 (8:43)
函式裡面有什麼 part 2 (7:44)
為什麼要用 Elixir 教? (2:22)
Part 1 - Function 是什麼?
抽象系統 (8:37)
一等公民(First-Class Citizen) (7:10)
你的程式語言可不可以做這件事? (9:04)
Elixir 中的兩種函式:具名與匿名 (8:32)
為什麼要區分具名與匿名這兩種函式? (4:37)
閉包(Closure) (4:56)
不可變性(Immutable)part 1 (5:15)
不可變性(Immutable)part 2 (6:28)
其它語言是怎麼設計的?part 1 (3:47)
其它語言是怎麼設計的?part 2 - Ruby 篇 (13:01)
其它語言是怎麼設計的?part 3 - JavaScript 篇 (2:15)
小結 (2:02)
Part 2 - Pattern Matching
初試 Pattern Matching (9:03)
利用 Pattern Matching 把結構裡的東西拆出來 (12:30)
List 跟 Array 有什麼不一樣? (10:18)
不是只有等號裡有 Pattern Matching (1:18)
為什麼函數式很少用 if ... else ...? (4:55)
【練習】FizzBuzz (1:50)
【解答】FizzBuzz (3:50)
switch ... case 或 case ... when 語法 (5:16)
JavaScript 上的 Pattern Matching (2:54)
Part 3 - 遞迴與高階函式
map 跟 each(或 for loop)的差別 (4:48)
遞迴 (3:36)
遞迴的問題 (3:22)
尾呼叫優化(Tail Call Optimization) (7:08)
遞迴與 reduce (5:30)
接收函式的函式 - map 與 filter (6:25)
並行(Concurrent)與平行(Parallel) (6:37)
使用 Zip 函式來注入依賴 (8:47)
flat_map 函式與 wrap 函式的組合技 (12:13)
Pipe Operator (7:04)
Functional Programming 的核心概念 (4:41)
Part 4 - 函式的組合
函式組合 (6:57)
資料轉換 (3:13)
Elixir 與 Erlang part 1 - 背景簡介 (10:23)
Elixir 與 Erlang part 2 - supervisor 與 worker (7:30)
Elixir 與 Erlang part 3 - Phoenix 裡的 LiveView (6:15)
Elixir 與 Erlang part 4 - 小結 (2:35)
Curry Function part 1 - 函式的參數數量不正確會發生什麼事? (6:56)
Curry Function part 2 - Ruby 實作版 (12:06)
Curry Function part 3 - JavaScript 實作版 (11:11)
Curry Function part 4 - Elixir 實作版 (5:26)
方法(Method)vs 函式(Function) (7:33)
在 mutable 語言中做出 closure (1:14)
decorator - 原理介紹 (9:25)
decorator - 使用 JavaScript 與 Ruby 實作 (10:06)
Railway Oriented Programming (12:07)
Optional Chainning (4:18)
抽象層級與函式的型狀 (8:00)
Part 5 - 把 FP 的概念用在其它語言上
整體策略 (6:38)
連續操作過程中印資料 (9:38)
JavaScript 篇 (6:57)
Ruby 篇 (9:26)
Part 6 - 型別系統、容錯、平行化、Macro
型別系統 (9:04)
Macro (10:59)
容錯與平行化 (15:12)
小結 (8:08)
其它語言是怎麼設計的?part 2 - Ruby 篇
此內容為付費課程
如果您已經加入此課程,
您需要登入才能收看課程內容。
.
現在就加入!