Send Beginners mailing list submissions to beginners@haskell.org To subscribe or unsubscribe via the World Wide Web, visit http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners or, via email, send a message with subject or body 'help' to beginners-requ...@haskell.org
You can reach the person managing the list at beginners-ow...@haskell.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Beginners digest..." Today's Topics: 1. Re: reading lines with history from bash terminal in OS X (Dennis Raddle) ---------------------------------------------------------------------- Message: 1 Date: Tue, 2 Aug 2016 12:24:31 -0700 From: Dennis Raddle <dennis.rad...@gmail.com> To: The Haskell-Beginners Mailing List - Discussion of primarily beginner-level topics related to Haskell <beginners@haskell.org> Subject: Re: [Haskell-beginners] reading lines with history from bash terminal in OS X Message-ID: <CAKxLvooJb3O=67re=tRR0ZH_-v=zqgr9eut+twvle7swlo-...@mail.gmail.com> Content-Type: text/plain; charset="utf-8" Thanks. I will study this. On Mon, Aug 1, 2016 at 5:43 AM, David McBride <toa...@gmail.com> wrote: > MonadIO m => MonadIO (InputT m) > MonadException m => MonadException (InputT m) > > MonadIO means you have access to liftIO. liftIO . evaluate . force $ > mycode. > MonadException means that you have access to haskeline's exception > catching mechanisms. > > In System.Console.Haskeline.MonadException, you have the catch, catches, > and handle functions which will allow you to catch IO exceptions (in > combination with liftIO), and also a bracket which will just let you do > arbitrary IO actions and clean up when you are done (or hit an exception). > > >let mycode = undefined :: Handle -> IO () -- example code > > runInputT _ (bracket (liftIO $ openFile "blah" ReadMode) (liftIO . hClose) > (\fp -> liftIO . mycode $ fp)) > > Another way to use it might be > > runInputT _ (liftIO $ mycode _) `catches` [Handler iohandler, Handler > anotherhandler] > where > iohandler :: IOException -> IO () > iohandler e = putStrLn "got io exception" >> return () > > Exceptions are always a pain, and so are transformers, but you get used to > them. > > On Mon, Aug 1, 2016 at 4:06 AM, Dennis Raddle <dennis.rad...@gmail.com> > wrote: > >> I'm looking over haskeline. It looks like I have to modify some of my >> code that is in the IO monad right now. I use 'evaluate' in several places, >> and also 'evaluate $ force', to make sure that IO exceptions are >> encountered where I can catch them. Can I use 'evaluate' with InputT? I'm >> muddled headed about what to do. I guess I would lift 'evaluate' into the >> inner monad? I am not sure what those words mean. How would I catch IO >> exceptions? >> >> On Thu, Jul 28, 2016 at 5:35 PM, Dennis Raddle <dennis.rad...@gmail.com> >> wrote: >> >>> Thanks. I'll install haskeline >>> >>> On Thu, Jul 28, 2016 at 5:05 PM, David McBride <toa...@gmail.com> wrote: >>> >>>> You will have to use the haskeline library. FYI that is the library >>>> that makes ghci work. >>>> >>>> On Thu, Jul 28, 2016 at 6:09 PM, Dennis Raddle <dennis.rad...@gmail.com >>>> > wrote: >>>> >>>>> I wrote a program first in Windows, where it works as expected, and >>>>> now I'm using it in OS X and getting undesired behavior. >>>>> >>>>> It reads lines from the terminal using the getLine function. In >>>>> Windows (DOS, actually) the up and down arrows can be used to choose >>>>> previously entered lines. However, this does not work in bash in OS X. >>>>> >>>>> What do I need to get the history available via the arrow keys? >>>>> >>>>> D >>>>> >>>>> >>>>> _______________________________________________ >>>>> Beginners mailing list >>>>> Beginners@haskell.org >>>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Beginners mailing list >>>> Beginners@haskell.org >>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners >>>> >>>> >>> >> >> _______________________________________________ >> Beginners mailing list >> Beginners@haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners >> >> > > _______________________________________________ > Beginners mailing list > Beginners@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.haskell.org/pipermail/beginners/attachments/20160802/3afa66d3/attachment-0001.html> ------------------------------ Subject: Digest Footer _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners ------------------------------ End of Beginners Digest, Vol 98, Issue 3 ****************************************