0
YesodハンドラでunsafePerformIOを回避することに頭を悩ませてしまいました。 HandlerのコードはHandler Monadにありますので、どのようにIO操作を実行できますか?Handler MonadでunsafePerformIOを回避する方法は?
getProfileR :: Handler Html
getProfileR = do
-- toTMDBMovie's return-type is IO Movie
-- Without the unsafePerformIO the type of result would be IO [Movie]
-- How do I get from IO [Movie] to [Movie]?
-- Ignore reccMovies - it's just a parameter.
let result = unsafePerformIO $ mapM toTMDBMovie reccMovies
defaultLayout $ do
setTitle "Profile"
$(widgetFile "profile")
ありがとうございました!
'Handler'は[MonadIO'](https://hackage.haskell.org/package/transformers-0.3.0.0/docs/Control-Monad-IO-Class.html)ですので、'結果< - liftIO $ mapM toTMDBMovie reccMovies' – luqui
これは、もっと知りたい場合は[モナドトランスフォーマー](https://en.wikibooks.org/wiki/Haskell/Monad_transformers)に関連しています。 – luqui
@luquiありがとう、それはまさに私が探していたものです。これを回答として投稿すると、正しいものとしてマークされます。 :) – Biffy