en düşünelim:Temel int işlemlerini zincirlemek için >> = nasıl kullanılır?
f :: Int
f = return 64 >>= (\x -> x^2) >>= (\y -> y^2)
GHCi (dördüncü güç sonucu yükselterek izledi karesi 64) 281,474,976,710,656 en azından ilgili
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.
sonucu olmalıdır ya benim kod reddeder. Bu sorunu çözemiyorum. Ve benim yanlış anlaşılma monad'ım ile bağlantılı. Lütfen yardım et.
Neden ki? Düz int işlemleri monadik değildir. (Eğer kimlik monadını saymazsanız) –
'(\ x -> x^2) >> = (\ y _ -> y^4) $ 64' derlediğini ve' 281474976710656' olduğunu unutmayın: Monad nedir? – Michael
@Michael Monad '((->) Int)': 'Int' argümanını alan ve' a 'türünü döndüren işlevlerdir. – amalloy