Re: [Haskell-cafe] Interactive chatbot

2009-12-08 Thread Torsten Otto
No worries, I'd rather have it twice than not at all :-)

Thank you all for the helpful tipps. We ended up knowing a lot more about 
Haskell. The easiest solution however, was to compile it all into an 
application - tadaa, deleting works as wished for.

Regards,
Torsten 
Am 05.11.2009 um 02:00 schrieb Ben Millwood:

 Oops, I clicked reply instead of reply to all. Duplicating the
 message below.
 I suppose this means someone is going to get two copies of this. Sorry 
 someone!
 
 On Thu, Nov 5, 2009 at 12:56 AM, Ben Millwood hask...@benmachine.co.uk 
 wrote:
 On Wed, Nov 4, 2009 at 10:21 PM, Torsten Otto t-otto-n...@gmx.de wrote:
 
 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.
 
 
 As people have said it's worth checking what buffering settings you
 are using (especially note that ghci changes some interesting settings
 in relation to how input is handled, and compiled code may behave
 differently), but it might also be worth checking the terminal
 application's preferences to see if there are settings related to the
 interpretation of the backspace key that you need to twiddle one way
 or the other. In particular, if you are finding that pressing delete
 makes ^H appear on the input line instead of deleting things, or if
 pressing ctrl-H deletes stuff where the delete key fails to do so, it
 might be a problem with your terminal rather than with your program.
 This is only based on what I vaguely remember from faffing with the
 Mac Terminal application some time ago when it wouldn't co-operate
 with screen, but it may be worth a look.
 
 yours,
 Ben Millwood
 

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Interactive chatbot

2009-11-04 Thread 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:


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


Re: [Haskell-cafe] Interactive chatbot

2009-11-04 Thread Gregory Crosswhite

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


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Interactive chatbot

2009-11-04 Thread Thomas DuBuisson
On Wed, Nov 4, 2009 at 2:21 PM, Torsten Otto t-otto-n...@gmx.de 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).

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
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Interactive chatbot

2009-11-04 Thread Jason Dagit
On Wed, Nov 4, 2009 at 2:21 PM, Torsten Otto t-otto-n...@gmx.de 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.


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:hSetBuffering

You probably want to look at 'interact' also.

Or just switch to readline as others have suggested.

Jason
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Interactive chatbot

2009-11-04 Thread Shachaf Ben-Kiki
On Wed, Nov 4, 2009 at 3:14 PM, Jason Dagit da...@codersbase.com wrote:


 On Wed, Nov 4, 2009 at 2:21 PM, Torsten Otto t-otto-n...@gmx.de 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.

 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:hSetBuffering
 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
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Interactive chatbot

2009-11-04 Thread Ben Millwood
Oops, I clicked reply instead of reply to all. Duplicating the
message below.
I suppose this means someone is going to get two copies of this. Sorry someone!

On Thu, Nov 5, 2009 at 12:56 AM, Ben Millwood hask...@benmachine.co.uk wrote:
 On Wed, Nov 4, 2009 at 10:21 PM, Torsten Otto t-otto-n...@gmx.de wrote:

 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.


 As people have said it's worth checking what buffering settings you
 are using (especially note that ghci changes some interesting settings
 in relation to how input is handled, and compiled code may behave
 differently), but it might also be worth checking the terminal
 application's preferences to see if there are settings related to the
 interpretation of the backspace key that you need to twiddle one way
 or the other. In particular, if you are finding that pressing delete
 makes ^H appear on the input line instead of deleting things, or if
 pressing ctrl-H deletes stuff where the delete key fails to do so, it
 might be a problem with your terminal rather than with your program.
 This is only based on what I vaguely remember from faffing with the
 Mac Terminal application some time ago when it wouldn't co-operate
 with screen, but it may be worth a look.

 yours,
 Ben Millwood

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe