私はモナドのインスタンスを定義しています:Haskellはいつ呼び出すべき「返品」を知っていますか?
data Something = Something a
instance Monad Something where
return a = Something a --Wraps a in 'Something', correct?
m >>= f = do
var <- m
return $ f var --I want this to pass var to f, then wrap the result
--back up in the 'Something' monad with the return I
--Just defined
質問がある - >
1:私がやっているものとの任意の明白なエラー/誤解がありますか?
2:私はいくつかの理由で、私はモナドで定義された別の関数
f :: Something a -> Something b
f x = do
var <- x
return $ doMagicTo x
ウィルreturn
コールのリターンを定義する場合:Haskellは私がm >>= f
3から上記で定義されているリターンを呼び出すために知っているだろうインスタンスとラップx Something
に?
これは素晴らしいことです。これらの答えはすべてとても良いです。私は、これまでのところハスケルコミュニティが、私が遭遇したことの中で最も有用で徹底的であったことを強く主張します。乾杯。 – providence