2012-04-09 5 views
2

を評価します)アクティブな引数読むことができます:ありHaskellの読みargsが、私はHaskellで引数の値を読んで少し問題を抱えている

main = do 
     args <- getArgs 
     case getOpt RequireOrder options args of 
      ([Version], [], []) -> do ... 

      ([Help], [], []) -> do ... 

      (flags, files, []) -> do ........ * 

      otherwise -> do ... 

を「*」文字、私は可能「-l 3」フラグの値を読み取る必要がある - >私は、グーグルによる検索が、私は(何も見つからなかったしていませんしかし、おそらく間違ったキーワード)。彼らは、引数がその値ではなくどこでもアクティブであるかどうかを検出します。

私はあなたがこのような値を取得することができヘルパー関数で

unFSLevel :: ArgFlag -> Maybe String 
unFSLevel (FSLevel value) = Just value 
unFSLevel _    = Nothing 

data ArgFlag = Help 
      | Version 
      | FSAll 
      | FSLevel String 

を定義していると推定

答えて

2

case listToMaybe $ mapMaybe unFSLevel of 
    Just value -> -- code to handle the -L flag having this value 
    Nothing -> -- code to handle there not being an -L flag 

は(あなたがmapMaybeをインポートする必要がありますlistToMaybeからData.Maybeまで)

+0

完璧な答えに多くの;)。魅力的な作品! – ZarakiKenpachi

関連する問題