我正在學習函數式編程Clojure,並希望加深我對函數範式(而不僅僅是Clojure的語法)的理論理解。函數式編程公理
我想找公理或公式像遞歸,圖中的每個功能的技術如何,減少,利弊,第一ANS其餘涉及對方,這是衍生/從該組合的,並且其一切背後的終極公理。
例如,我意識到map
只能使用recur
,first
,rest
和cons
功能,當然映射函數本身傳遞給map
來實現。
在那之後,我也意識到map
可以使用reduce
也實現,並再次減少可使用recur
,first
和rest
實施。 filter
也可以用reduce
來實現。
我覺得我開始換我周圍的函數式編程的頭,但它仍然是很難看到,這是最極致的建築塊,即這是最低組的抽象或關鍵字組成任意的功能。在地圖示例中,第二種方法使用一個較少的抽象來定位相同的目標。那麼,功能範式的一些最終公理是如何幫助我看到大局的?
在這種情況下,我會建議你看看這本書:https://mitpress.mit.edu/books/little-schemer這是一個了不起的FP介紹,告訴你如何使用一個基本的數字的元素。經典的[SICP](https://mitpress.mit.edu/sicp/full-text/book/book.html)也可以提供很多幫助。他們兩個都僱用lisp(準確地說,方案),所以很容易將你的理解轉化爲clojure – leetwinski
函數式編程大部分根源於Lamda微積分,核心公理如下面的amalloy所述。 –
不要忘了,'map'也可以替換爲'for' –