継続モナド使おう。
import Control.Monad
import Control.Monad.Cont
main :: IO ()
main = do
(`runContT` const (return ())) $ do
callCC $ \k -> do
forM_ [1..10] $ \i -> do
when (i > 5) $ k ()
liftIO $ print i
More than 5 years have passed since last update.
継続モナド使おう。
import Control.Monad
import Control.Monad.Cont
main :: IO ()
main = do
(`runContT` const (return ())) $ do
callCC $ \k -> do
forM_ [1..10] $ \i -> do
when (i > 5) $ k ()
liftIO $ print i
Register as a new user and use Qiita more conveniently