怎麼學習函式式程式設計

時間 2021-05-05 21:12:59

1樓:曹上

可以看coursera上面的programming language和function programming in scala

edx上introduction to function programming 和 How to code系列

2樓:Tie Cheng

我們寫OCaml。

乙個思路是,找函式式語言擅長的專案練習或參與。比如寫程式分析的工具:compiler、type-checker、abstract interpreter等等。

比如10 Studio的核心是OCaml寫的乙個static analyzer(或者叫abstract interpreter),用來在不執行Excel formulas的情況下推導Excel formulas的一些性質,達到糾錯、優化的目的。

程式語言或者Domain Specific Language有很多,用OCaml編寫lexer,parser,生成Abstract Syntax Tree,然後用pattern matching各種情況處理起來很舒服。。。

其他一些資料:

OCaml教程 - OCaml

函式式程式設計 - OCaml

Real World OCaml(中文版)

A curated collection of awesome OCaml tools, frameworks, libraries and articles.

函式式程式設計(Functional Programming)相比物件導向程式設計(Object oriented Programming)有哪些優缺點?

綠巨人 給乙個FP和OOP的不同之處。介面的使用中,會涉及到四個角色 介面,實現者,介面使用者,物件建立者。我們看這個四個角色的出現的先後次序。在OOP中,出現的次序是 介面 介面使用者 實現者 物件建立者。實現者必須晚於介面,OOP想 這不是廢話嗎?在FP中 實現者可以在介面之前出現 以Go語言為...

函式式程式設計中cps(continuation passing style )是什麼意思?

借用wiki books的說法,CPS是把f a a 變換成 f cps a a r r 最後不是返回值,而是返回乙個傳入了返回值的資料對映關係 函式 灼弦 Belleve的回答太抽象了,沒邏輯背景的人看不懂,我在Quora上看到乙個回答寫得挺好的,裡面從邏輯學的角度解釋的一節或許可以作為 Bell...

前端使用物件導向式程式設計 還是 函式式程式設計 針對什麼問題用什麼方式 分別有什麼具體案例?

程式碼咚咚鏘 物件導向程式設計 將資料進行封裝,每次修改封裝的物件屬性,都影響到了全域性 函式式程式設計 乙個輸入屬於對應乙個輸出,函式內的資料修改只作用到區域性內。 貘吃饃香 瀉藥為啥又得攙和這些破爛事兒 阮大師貼的東西我認為就是個玩笑 雖然有人認為他是認真的 拿純函式式來說 幾個重要特點 1 不...