[Haskell-cafe] GetOpt

John Meacham john at repetae.net
Thu Apr 27 18:21:23 EDT 2006


I wrote an option parser that infers everything about the options from
the types of what you pull out of it so there is no need to specify
redundant information and you can write very concise code (especially when combined with
the overloaded regex module!)

like for instance

main = do
 (args,(verb,output_name)) <- getOptions ("v|verbose", "o")
 putStrLn $ if verb then "verbose mode" else "not verbose"
 case output_name of
        Nothing -> putStrLn "no output"
        Just fn -> putStrLn $ "output file is: " ++ fn

will just work, infering from the type that '-v' and '-verbose' are
simple flags, while '-o' takes a string argument.


you can even set help messages with the (??) operator

"o" ?? "output file name"

and default values with the (==>) operator.

"o" ==> "out.txt"

it can be gotten here:
http://repetae.net/john/recent/out/GetOptions.html
and help is at:
http://repetae.net/john/recent/src/hsdocs//GetOptions.html

        John


-- 
John Meacham - ⑆repetae.net⑆john⑈


More information about the Haskell-Cafe mailing list