Bir monaddan "şeyleri" almanın bir yolu var mı?Haskell'de bir monaddan nasıl bir değer çıkarırsınız?
Ben bir oyun geliştiriyorum ve şimdi veritabanları hakkında anlamaya çalışıyorum. happstack
'u gerçekten çok iyi buldum, ama ben bir şey alamıyorum.
Örneğin, bu işlevi var
getAllThings :: MonadIO m => m [Thing]
getAllThings = do
elems <- query GetThings
return elems
Yani m [Things]
almak (eğer happstack
aşina umut), ama benim modelinde bu kullanamazsınız! Örneğin
doSomeThingWithThings :: [Thing] -> Something
Bunu araştırdım ve hiçbir şey bulamadım.
Sen hayali yaklaşık [yorumlarımı zevk verebilir monad gelen
<-
kullanarak değeri ayıklamak kullanmak ve işlevine geçebilirgetAllThings
aradığınız her zamankinden Yani ya elde elems sonra vereturn
önce veya nerede size başka işlevi çağırabilir 'magicMonadUnwrap'] (http://stackoverflow.com/questions/7154518/unwrapping-a-monad/7156230#7156230) (benzer bir StackOverflow sorusuna cevap verin) –