ithika:
I was trying to write my own equivalent to Don Stewart's mkcabal but
ended up getting sidetracked. I made some generalised prompts for use at
the command line and wanted to get some feedback on them.
The full code can be found at [1] but the basic summary is like this:
prompt :: String - IO String
Simple prompt - supply a question and receive the user's answer.
promptYesNo :: String - Maybe String - IO Bool
A yes/no question, with an optional value to ask about. I suppose this
could be simplified to just one string.
promptList :: String - [String] - Maybe Integer - IO Integer
Ask the user to choose from a list, where the result is the number
chosen. The optional value is a default if the user doesn't pick a
number.
promptListEdit :: String - [String] - Maybe Integer - IO String
As above, but the last option in the list is an invitation to provide
your own answer. Again the optional value is the default choice if
nothing else is chosen. The result here is necessarily the string rather
than the integer cos I didn't want to complicate matters further with
stuff like Either types.
If you can see any flaws or have any suggestions please let me know!
Looks pretty good, though you use
case x :: Bool of
True - ...
False - ...
when
if x then ... else ...
would be preferred.
I wonder if there's a prompt API out there for python or something you
could use for inspiration?
-- Don
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe