日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Atitit 理解Monad attilax总结

發布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Atitit 理解Monad attilax总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

?

?

Atitit 理解Monad attilax總結

?

?

但函數式編程最大的一個問題是,函數是一個數學抽象,在現實世界中不存在,1

那既然這樣就夠用了,還要 Monad 干嘛?Monad 的作用在這里就體現出來了,它就是個加強的膠水函數1

?

?

但函數式編程最大的一個問題是,函數是一個數學抽象,在現實世界中不存在,

它必須被模擬出來。目前為止被廣泛使用的計算機還是基于圖靈機模型,計算機的寄存器、緩存、內存就是用來記錄狀態的。要真正懂得程序設計,必須知道沒有狀態的函數是如何在充滿狀態的計算機上實現的,所以還是繞不開非函數式的編程。另外絕大部分的函數式程序設計語言都不是純函數式的,出于實用性考慮都夾雜著其他語言的一些特點,并沒有完全排斥狀態。Haskell 號稱純函數式語言,用 Monad 來抽象狀態,理論上可以自圓其說,但在實際使用中其實還是帶來了很多不便(于是又發明了 Monad Transformer...)。

從某種程度上說,狀態是繞不過去的,畢竟人感知到的宏觀世界就是由各種各樣有各自狀態的對象構成。函數式編程可以幫我們避免很多用其他方式容易犯的錯誤,在很多情況下寫出更高質量的程序,但并發帶來的復雜度并不會從根本上消失。各種編程風格一定是互相影響推動程序設計語言的進化,沒有絕對的好壞,從 C++ 和 Java 最新標準里引入的函數式方面的功能就很容易看出這一點。比較有意思的是,OOP 最早是在 LISP 里實現的,而 LISP 也被很多人看做函數式編程的起始。同樣,好的程序員也會根據具體情況使用合適的編程風格。

那既然這樣就夠用了,還要 Monad 干嘛?Monad 的作用在這里就體現出來了,它就是個加強的膠水函數



因為不方便。函數式編程的精髓就在于,我們可以用好多好多小小函數,搭搭搭,組成一個個大函數,最終寫出整個程序來。如果所有 IO 都要用上面的模型,我們就要把程序里所有需要 IO 的地方都匯總起來,輸入做成一個大數據結構,輸出做成一個大數據結構,然后再往模型上面湊,很麻煩,這不精髓。

理想的情況是這樣:
比如我們想寫一個函數

a -> c

然后手頭有兩個小函數:

a -> b

b -> c

于是我們用一個膠水函數

(a -> b) -> (b -> c) -> (a -> c)

把那兩個小函數膠起來,做成我們要的

a -> c

這樣是墜好的。

Monad 的作用在這里就體現出來了,它就是個加強的膠水函數。IO Monad 是這些膠水之一,有了它,我們不但可以把小函數膠起來,還能在膠的同時,把他們的頭連成一個輸入流,把它們的尾巴連成一個輸出流,構成最終的 IO 函數,不用吭哧吭哧自己構造 IO 數據結構。



所以,Monad 膠水除了把兩個小函數頭尾相接拼起來以外,還可以趁機做些別的事情,起到封裝一部分操作的作用。不同的膠水作用不同,所以要用不同的類(IO、Maybe 等等)把這些膠水區分開來。然后,

圖解 Monad - 阮一峰的網絡日志.html

?

作者::?綽號:老哇的爪子claw?of Eagle?偶像破壞者Iconoclast?image-smasher

簡稱?Attilax?Akbar?阿提拉克斯?阿克巴

全名:Attilax?bin Mahmud?bin ?attila bin Solomon?Akbar?Al?Rapanui?

阿提拉克斯? 馬哈茂德??阿提拉 所羅門?阿克巴?阿爾?拉帕努伊???

常用名艾提拉(艾龍)???EMAIL:1466519819@qq.com

轉載請注明來源:attilax的專欄 ??http://www.cnblogs.com/attilax/

--Atiend

?

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Atitit 理解Monad attilax总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。