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