Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
初探 functional programming
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
CypressKuo
February 03, 2017
Technology
0
110
初探 functional programming
CypressKuo
February 03, 2017
Tweet
Share
More Decks by CypressKuo
See All by CypressKuo
Deep-copying.pdf
cypresskuo
0
32
CSS_for_Web_Vitals.pdf
cypresskuo
0
38
談談_Code_review.pdf
cypresskuo
0
44
REST_vs_GraphQL_今夜はご注文はどっち.pdf
cypresskuo
0
22
CSS_重構.pdf
cypresskuo
0
25
跟上_JS_的腳步-ES2020.pdf
cypresskuo
0
28
Core_Web_Vitals.pdf
cypresskuo
0
53
這個時代人人都知道的敏捷開發.pdf
cypresskuo
0
56
Webassembly.pdf
cypresskuo
0
12
Other Decks in Technology
See All in Technology
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
210
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
530
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
210
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
1
170
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
460
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
530
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
340
What happened to RubyGems and what can we learn?
mikemcquaid
0
250
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
430
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
440
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
3k
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.1k
Exploring anti-patterns in Rails
aemeredith
2
250
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Discover your Explorer Soul
emna__ayadi
2
1.1k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
The Curious Case for Waylosing
cassininazir
0
230
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Designing Powerful Visuals for Engaging Learning
tmiket
0
230
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
65
Transcript
初探 functional programming in JavaScript CypressKuo @前端組例會 2017/02/03 1
定義 一種程式設計的方法/概念 2
3
4
特色 ✣ Expression, no Statement ✣ First-class ✣ High order
function ✣ No side effect ✣ Referential transparency ✣ Pure Function 5
Expression, no Statement Expression Statement 6
First-class 函數與其他數據類型一樣,處於平等地位。 可以被賦值到其他變數, 也可以作為參數傳入到不同的函數中, 或者作為函數的回傳值。 7
8
9
10
High order function 滿足以下兩項其中之一的函數 ✣ 可以將函式當成參數傳入的函式 ✣ 可以將函式當成回傳值的函式 11
12
✣ .map() ✣ .filter() ✣ .reduce() ✣ .forEach() ✣ .some()
✣ .every() 常見的 High order function 13
No side effect 沒有與外部互動,產生與運算無關的其他結果。 ✣ 發送 http request ✣ 印出
console ✣ 取得使用者的 input 14
Referential transparency 不管外部環境如何,只要參數相同,函式執行的返回結果必定相同。 15
Pure Function 結合 no side effect 與 Referential transparency 一個
function 給予相同的參數, 永遠會回傳相同的返回值,並且沒有任何顯著的副作用 16
17
18
Function Composition ✣ Curry ✣ Compose 19
curry 將一個有 N 個參數的函數轉換成 N 個只有一個參數的函數 20
21
22
compose 把兩個以上的一個參數函數合併起來串聯多個組合成新的函數 23
24
25
優勢 ✣ 可讀性高 ✣ 可維護性高 ✣ 簡潔,開發快速 26
參考資料 http://blog.miniasp.com/post/2016/12/10/Functional-Programming-in-JavaScript.aspx?s=2 http://www.ruanyifeng.com/blog/2012/04/functional_programming.html http://www.slideshare.net/rockncoder/functional-programming-in-javascript-68835257 http://www.slideshare.net/ihower/fp-osdc2012v2 https://github.com/MostlyAdequate/mostly-adequate-guide http://ithelp.ithome.com.tw/articles/10186465 27