lambda-options: A modern command-line parser for Haskell.

[ bsd3, library, text ] [ Propose Tags ]

A modern command-line parser for Haskell.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.4.0.0, 0.4.0.1, 0.4.0.2, 0.5.0.0, 0.5.1.0, 0.6.0.0, 0.7.0.0, 0.8.0.0, 0.9.0.0, 0.9.0.1, 0.9.1.0, 1.0.0.0, 1.0.1.0, 1.0.2.0, 1.1.0.0, 1.1.0.1
Dependencies base (>=4.7 && <4.8), containers (>=0.5 && <0.6), monad-loops (>=0.4 && <0.5), mtl (>=2.2 && <2.3) [details]
License LicenseRef-OtherLicense
Author Thomas Eding
Maintainer thomasedingcode@gmail.com
Category Text
Home page https://github.com/thomaseding/lambda-options
Uploaded by ThomasEding at 2015-05-14T05:41:51Z
Distributions
Downloads 10762 total (45 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-05-14 [all 1 reports]

Readme for lambda-options-0.1.0.0

[back to package description]

lambda-options-haskell

A modern command-line parser for Haskell.

  • Easy to use. The API is expressive.
  • Easy to learn. The API is tiny and simple.
  • BSD 1-Clause License

Basic example:

import System.Environment
import System.ExitCode
import Text.LambdaOptions

options :: LambdaOptions IO ()
options = do
  addOption "--help" $ do
    putStrLn "--user NAME [AGE]"
  addOption "--user" $ \name -> do
    putStrLn $ "Name:" ++ name
  addOption "--user" $ \name age -> do
    putStrLn $ "Name:" ++ name ++ " Age:" ++ show (age :: Int)

main :: IO ()
main = do
  args <- getArgs
  mError <- runOptions options args
  case mError of
    Just OptionsError -> exitFailure
    Nothing -> exitSuccess