のは、考えてみましょう:どのようにして>> =を使って基本的なInt操作を連鎖させますか?
f :: Int
f = return 64 >>= (\x -> x^2) >>= (\y -> y^2)
GHCiのは、(四乗に結果を上げることによって、その後の二乗64)281,474,976,710,656に少なくとも関連
Couldn't match expected type `Int' with actual type `m0 b0'
In the expression: return 64 >>= (\ x -> x^2) >>= (\ y -> y^2)
In an equation for `f':
f = return 64 >>= (\ x -> x^2) >>= (\ y -> y^2)
Failed, modules loaded: none.
結果がどうあるべきかとの私のコードを拒否します。 私はこの問題を解決できません。そしてそれはモナドの誤解と関連している。助けてください。
なぜでしょうか?プレーンint演算はモナドではありません。 –
'(\ x - > x^2)>> =(\ y _ - > y^4)$ 64'がコンパイルされ、' 281474976710656'となっていることに注意してください。 – Michael
@Michaelモナドは '(( - >)Int)'です: 'Int'を引数とし、' a'型を返す関数です。 – amalloy