data CError = EA Int | EB String
deriving (Eq, Show)
type Env = [(VName, Value)]/span>
newtype Test a = Test {runTest : 。Env -> (Either CError a, [String] ) }
我正在學習haskell,現在想定義一個單體,但遇到了這個錯誤,找不到解決的方法。
我的代碼如下:
instance Monad Test where
return a = Test $ e -> (Right a, mempty)
m >>= f = Test $ env ->case runTest m env of
(Right a, s) -> runTest (f a) env
(Left error) -> Left error
目前,這一行"(Left error) -> Left error "顯示一個例外 "無法匹配預期型別。(Either CError b, [String])與實際型別。Either a0 b1"。誰能幫我解決這個問題?謝謝你
。uj5u.com熱心網友回復:
型別(Either CError a, [String])沒有被任何形式的Left err的值所占據;你可能是指(Left err, s)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/329818.html
標籤:
上一篇:使用梯度下降演算法時的初值誤差
下一篇:如何連接并列印一個整數的串列?
