天天看點

haskell的世界觀(1)

我的了解,haskell創造了一個no side-effect的pure functional的world,然後為了和real world協同,創造了monad來封裝real world中的dirty data。

  圖1 左邊是無副作用世界,右邊是真實世界,二者通過交換單子進行協同

haskell的世界觀(1)

  當real world中發生一個destructive update的時候(輸入),它把這個update一刻的瞬間snapshot下來,産生一個monad;這個monad随即被送往no side-effect world(下簡稱pure world)。 pure world從單子中取出資料,進行運算,這個過程是pure的。處理完成後,它把結果封裝成一個新的單子傳回給真實世界,真實世界再發生一次destructive update(輸出)。   [email protected]原創,轉貼請注明出處,謝謝!