作者oopFoo (3d)
看板Soft_Job
標題Re: [請益] 適合入門functional programming 的教學
時間Thu Jan 19 09:09:13 2023
※ 引述《FXW11314 (soukai)》之銘言:
: 如題,剛到公司報到就發現老闆是functional programming 的愛好者,對案子也會要求盡
: 量用fp的方式來寫
: 但我跟其他同期報到的新人從來沒碰過,每天都會聽到一堆新名詞跟新做法,很擔心以後跟
: 不上,所以想趁年假惡補一下
: 請問有沒有推薦適合新手的fp教學,文章、書、影片都可以,謝謝大家
我的認知fp主要是immutability與stateless。
first class function, curry, lazy evaluation, monad ....主要都是為解決immutable data structure的問題。
type與category theory我不認為是fp的一部份,但常常會纏在一起。
但講起來都很抽象,我建議從purely functional data structures開始看。
https://belle.sourceforge.net/doc/okasaki-phd.pdf
Chris Okasaki的博士論文還是這方面的基礎,後來也有出書。
Prabhakar Ragde也整理出不錯
https://cs.uwaterloo.ca/~plragde/flaneries/FDS/
就我了解,會用fp的公司比較偏向金融的新創,不然fp實在有時不好用。但現在大部份都是impure fp所以....
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.214.71 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1674090559.A.236.html
1F:推 MoonCode: 所以你用了嗎 01/19 12:51
2F:→ musie: 這些都不是入門的 真要搞Lisp 先從SICP跟Little Schemer 01/19 13:23
3F:→ MoonCode: 樓上看完 sicp 了嗎 01/19 13:36
4F:→ musie: 看完了呀 習題全刷呀. 01/19 13:57
5F:→ musie: 我前工作就用Agda搞金融 你懂? 01/19 13:57
6F:→ MoonCode: 不懂 有大神先拜了 01/19 14:14
7F:推 musie: 不是 這兩本都很薄又很簡單 真的是入門用的. 到底? 01/19 14:28
8F:→ s9041200: dependent type都冒出來了,怕 01/19 14:44
9F:推 MoonCode: little schemer 看到不動點組合子就躺了 抱歉 01/19 15:00
10F:→ bachelorwhc: 笑死 問東問西的 fp應用case不會自己查嗎 01/19 15:28
11F:推 eopXD: 也可以來一下 learn you a Haskell for great good 01/19 20:21
12F:→ oopFoo: sicp跟little schemer +1,不過lispy syntax蠻吃緣份的 01/19 20:37
13F:→ oopFoo: 不然這兩本書教的fp方法蠻好的。 01/19 20:38
14F:→ oopFoo: 當初Lisp,OCaml有玩一陣子,但fp的概念還是似懂非懂。 01/19 20:39
15F:→ oopFoo: 是在工作上用Erlang才算比較了解fp。現在想想,應該是寫一 01/19 20:41
16F:→ oopFoo: 定量以上的code就慢慢融會貫通。後來也有接觸Forth,感覺 01/19 20:42
17F:→ oopFoo: 還蠻functional的,有點意外。 01/19 20:43
18F:→ saladim: 我看到category theory就掛了, 就實務上會用monad已經很 01/20 00:36
19F:→ saladim: 強了 連更前面的applicative functor就覺得很抽象 要怎麼 01/20 00:37
20F:→ saladim: 應用 = = 又有語法的問題 XDD 平常不用haskell/lisp/sche 01/20 00:38
21F:→ saladim: 本魯太弱了 無法體會抽象到實務怎麼發生 01/20 00:39
22F:→ oopFoo: Haskell我不敢碰,太多觀念要熟習。現在玩fp我會推薦 01/20 09:05
23F:→ oopFoo: Clojure,實際,好用,有Java生態環境當靠山。 01/20 09:08
24F:→ recorriendo: 真的要推SICP 01/20 14:59
25F:→ recorriendo: monad基本上就是要用stateless func做不stateless的 01/20 15:01
26F:→ recorriendo: 事 個人覺得不是很好用 01/20 15:01
27F:→ recorriendo: Dan Grossman的教材也很好 以前他還有coursera課程 01/20 15:02
28F:→ recorriendo: 不知道現在還有沒有 01/20 15:02
29F:→ gn00710311: 可惡都沒人推 FP Scala ,也是 JVM 體系喔 01/20 16:42