7
在真實世界哈斯克爾第15章,一個類型的類定義:什麼是上下文Haskell的多參數類型的類
class (Monad m) => MonadSupply s m | m -> s where
一對夫婦的段落後,它說,>> =,並返回不需要由於上下文而被定義。但沒有進一步解釋上下文意味着什麼。
編譯器如何知道MonadSupply是Monad的實例,如果只有「m」是單子的實例?
在真實世界哈斯克爾第15章,一個類型的類定義:什麼是上下文Haskell的多參數類型的類
class (Monad m) => MonadSupply s m | m -> s where
一對夫婦的段落後,它說,>> =,並返回不需要由於上下文而被定義。但沒有進一步解釋上下文意味着什麼。
編譯器如何知道MonadSupply是Monad的實例,如果只有「m」是單子的實例?
「上下文」只是class
和=>
之間的一部分,在這種情況下,它是約束條件Monad m
。而且這與其說是它「知道」,更在於它強制它 - 寫MonadSupply
實例的類型m
不也有Monad
實例將產生一個編譯器錯誤。
嗯,是的。我錯過了那個說monad是一個先決條件的部分。感謝您的快速回答:) – user394827 2010-07-18 01:30:34