Le seguenti due implementazioni di equivalente flatten per tutte le Monade ben educate?restituendo un elemento estratto da una monade; ridondante?
flatten1 xss = do
xs <- xss
x <- xs
return x
flatten2 xss = do
xs <- xss
xs
Yup, 100% identico. Potresti semplicemente importare 'Control.Monad' e scrivere' join', o usare 'xss >> = id'. –
Sì. 'do {...; x <- m; return x} 'è sempre uguale a' do {...; m} '. –