論純函數(shù)管道數(shù)據(jù)流方法,兼評:左耳朵耗子 《什么是函數(shù)式編程?》

版權(quán)所有 ? 2018 林鵬程, 保留所有權(quán)利。

? 左耳朵耗子 《什么是函數(shù)式編程?》寫的純函數(shù)管道方法我在QQ群、微信群里說過好多年了,在2017年1~3月的推特和微博,也發(fā)過幾篇相關(guān)的短文,我的項(xiàng)目也應(yīng)用了該方法。

? ? Clojure語言一直都是極力推崇這寫流水線寫法,提供了語言級的支持,->>宏寫法更漂亮。只是編程人員有下力氣去這么做的人少而已, 畢竟設(shè)計(jì)一條流暢的流水線了是一件比較費(fèi)時(shí)間的事。不過是一堆老概念, 耳熟能詳?shù)臇|西,Unix和FP都出了多少年了。

? ? 管道流水線最早的思想就是模擬工業(yè)流水線, FP最早的思想就是模擬機(jī)器組裝,兩者都對大工業(yè)的模仿,數(shù)學(xué)只是FP用來裝點(diǎn)門面的, 這叫內(nèi)用黃老,外示儒術(shù),說一套,做一套,古今中外都有。

? ? 對于純函數(shù)管道方法,以前我在QQ群、微信群里講過一個(gè)更容易理解的借喻:把數(shù)據(jù)當(dāng)成電流,函數(shù)當(dāng)成各種設(shè)備或電器,數(shù)據(jù)(電流)從電廠出發(fā),經(jīng)過高壓線,配電設(shè)備,電表,電線等純函數(shù),最終到達(dá)電器做功產(chǎn)生副作用,完成使命結(jié)束。

? ? 基于上例,一個(gè)純函數(shù)管道數(shù)據(jù)流由純函數(shù)構(gòu)成,最多只有一個(gè)副作用函數(shù),且只能在末尾,可以沒有副作用。純函數(shù)管道數(shù)據(jù)流的作用,主要是實(shí)現(xiàn)數(shù)據(jù)流和邏輯流分離,方便重用、組合、維護(hù)、并發(fā)、擴(kuò)展。

? ? 快2018年春節(jié)了,我再發(fā)一遍2017年春節(jié)在微博發(fā)的一個(gè)clojure數(shù)據(jù)流祝福代碼,中文表達(dá)是: 把各種祝福放在福袋里, 送給大家.

(-> []

? ? (conj "新年快樂")

? ? (conj "幸福安康")

? ? (conj "事業(yè)發(fā)達(dá)")

? ? (->> (assoc {} :大家))) ????

附文:《左耳朵耗子:什么是函數(shù)式編程?》網(wǎng)址

https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2651001208&idx=1&sn=88e9bf49f5a2bc095dde59642968dbac&chksm=bdbee92b8ac9603dcdc37278f47f1f97c25ed371c51f01041db45b3730f87da3ba8118cbddd7&mpshare=1&scene=1&srcid=02126bOIcpSrotvnqbUVJlcg#rd

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容