簡體   English   中英

Monadic雜質和Haskell的純度。 他們是如何結合的?

[英]Monadic impurity and Haskell's purity. How they are combined?

monad構造如何幫助維持純度(在Haskell中),同時做出不純凈的東西? 例如,當您給出print "Hello" ,您是在執行純粹還是不純的代碼? 這是一個非常微妙的細節,但有助於更好地理解功能語言中純度和雜質的概念。

表達方式

print "Hello"

確實純潔。 因為它不打印任何東西,而是構造一些在執行時打印“Hello”的東西。

這是一個類比:

一位和尚在一張紙上寫道:

Go to a bordell and do filthy things with the prostitutes there.

我們可以因為通奸而指責僧侶,只因為他寫了一份通奸指令嗎?

stackoverflow中的問題可能會回答你的問題: IO Monad在什么意義上純粹?

簡而言之,monad本身是純粹的 ,但它可以發出不純的指令。 更具體一點,monad可以被視為一系列可組合的計算描述。 這些計算中的一些可能是臟的(即具有副作用),但描述本身是完全純凈和干凈的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM