Re: [請益] 適合入門functional programming 的教學

作者: oopFoo (3d)   2023-01-19 09:09:13
※ 引述《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所以....
作者: MoonCode (MoonCode)   2023-01-19 12:51:00
所以你用了嗎
作者: musie (Sirius)   2023-01-19 13:23:00
這些都不是入門的 真要搞Lisp 先從SICP跟Little Schemer
作者: MoonCode (MoonCode)   2023-01-19 13:36:00
樓上看完 sicp 了嗎
作者: musie (Sirius)   2023-01-19 13:57:00
看完了呀 習題全刷呀.我前工作就用Agda搞金融 你懂?
作者: MoonCode (MoonCode)   2023-01-19 14:14:00
不懂 有大神先拜了
作者: musie (Sirius)   2023-01-19 14:28:00
不是 這兩本都很薄又很簡單 真的是入門用的. 到底?
作者: s9041200 (小明阿)   2023-01-19 14:44:00
dependent type都冒出來了,怕
作者: MoonCode (MoonCode)   2023-01-19 15:00:00
little schemer 看到不動點組合子就躺了 抱歉
作者: bachelorwhc (單身老王)   2023-01-19 15:28:00
笑死 問東問西的 fp應用case不會自己查嗎
作者: eopXD (eopXD)   2023-01-19 20:21:00
也可以來一下 learn you a Haskell for great good
作者: oopFoo (3d)   2023-01-19 20:37:00
sicp跟little schemer +1,不過lispy syntax蠻吃緣份的不然這兩本書教的fp方法蠻好的。當初Lisp,OCaml有玩一陣子,但fp的概念還是似懂非懂。是在工作上用Erlang才算比較了解fp。現在想想,應該是寫一定量以上的code就慢慢融會貫通。後來也有接觸Forth,感覺還蠻functional的,有點意外。
作者: saladim (殺拉頂)   2023-01-20 00:36:00
我看到category theory就掛了, 就實務上會用monad已經很強了 連更前面的applicative functor就覺得很抽象 要怎麼應用 = = 又有語法的問題 XDD 平常不用haskell/lisp/sche本魯太弱了 無法體會抽象到實務怎麼發生
作者: oopFoo (3d)   2023-01-20 09:05:00
Haskell我不敢碰,太多觀念要熟習。現在玩fp我會推薦Clojure,實際,好用,有Java生態環境當靠山。
作者: recorriendo (孟新)   2023-01-20 14:59:00
真的要推SICPmonad基本上就是要用stateless func做不stateless的事 個人覺得不是很好用Dan Grossman的教材也很好 以前他還有coursera課程不知道現在還有沒有
作者: gn00710311 (孫小毛)   2023-01-20 16:42:00
可惡都沒人推 FP Scala ,也是 JVM 體系喔

Links booklink

Contact Us: admin [ a t ] ucptt.com