
Hi! My students have the task to program an interactive chatbot. We have run into a problem that I can't solve either: When we read the user's input through
t <- getLine it is not possible to delete typos before hitting enter and thereby sending the input off to the system (at least in OS X, bash). I didn't find that terribly problematic, but of course it is a bit of a show stopper from their point of view.
The input is then used to generate a reply in purely functional code, and the reply sent to the command line via putStr. Is there a more clever way to interact with the user that would allow editing ones text before sending it to the bot? I guess we could try with a website, but don't know off hand how to do that, either, although I've seen beautiful webservers made in Haskell... Regards, Torsten Otto

The library at http://hackage.haskell.org/package/readline might solve your problem. Cheers, Greg On Nov 4, 2009, at 2:21 PM, Torsten Otto wrote:
Hi!
My students have the task to program an interactive chatbot. We have run into a problem that I can't solve either:
When we read the user's input through
t <- getLine it is not possible to delete typos before hitting enter and thereby sending the input off to the system (at least in OS X, bash). I didn't find that terribly problematic, but of course it is a bit of a show stopper from their point of view.
The input is then used to generate a reply in purely functional code, and the reply sent to the command line via putStr. Is there a more clever way to interact with the user that would allow editing ones text before sending it to the bot? I guess we could try with a website, but don't know off hand how to do that, either, although I've seen beautiful webservers made in Haskell...
Regards, Torsten Otto
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Wed, Nov 4, 2009 at 2:21 PM, Torsten Otto
Hi!
My students have the task to program an interactive chatbot. We have run into a problem that I can't solve either:
t <- getLine it is not possible to delete typos before hitting enter and thereby sending
When we read the user's input through the input off to the system (at least in OS X, bash).
Why reinvent the shell? Is the program not setup in such a way as to make the ShellAC package a useful solution? I see someone already chimed in with readline. You might want to look at haskeline too, if you go that path (both are a step lower than ShellAC wrt abstraction). Thomas

On Wed, Nov 4, 2009 at 2:21 PM, Torsten Otto
Hi!
My students have the task to program an interactive chatbot. We have run into a problem that I can't solve either:
t <- getLine it is not possible to delete typos before hitting enter and thereby sending
When we read the user's input through the input off to the system (at least in OS X, bash). I didn't find that terribly problematic, but of course it is a bit of a show stopper from their point of view.
Is it possible that you need to tweak the input buffering settings? http://haskell.org/ghc/docs/latest/html/libraries/base/System-IO.html#v:hSet... You probably want to look at 'interact' also. Or just switch to readline as others have suggested. Jason

On Wed, Nov 4, 2009 at 3:14 PM, Jason Dagit
On Wed, Nov 4, 2009 at 2:21 PM, Torsten Otto
wrote: Hi!
My students have the task to program an interactive chatbot. We have run into a problem that I can't solve either:
t <- getLine it is not possible to delete typos before hitting enter and thereby sending the input off to the system (at least in OS X, bash). I didn't find
When we read the user's input through that terribly problematic, but of course it is a bit of a show stopper from their point of view.
Is it possible that you need to tweak the input buffering settings? http://haskell.org/ghc/docs/latest/html/libraries/base/System-IO.html#v:hSet... You probably want to look at 'interact' also. Or just switch to readline as others have suggested. Jason
Another possibility (perhaps simpler) is to use an external program such as rlwrap to handle input. Shachaf
participants (5)
-
Gregory Crosswhite
-
Jason Dagit
-
Shachaf Ben-Kiki
-
Thomas DuBuisson
-
Torsten Otto