Haskell Libraries 使用杂记
纪录使用 Haskell 的库的过程中碰到的一些零碎的问题 :-)
* System.Console.GetOpt 中 ReqArg/OptArg 的第二个参数的意义
RegArg/OptArg 的第二个参数用来指定对应选项的参数的名字,例如在代码中使用如下语句
Option ['s'] ["separator"]
(ReqArg (\sep opts -> opts { optSeparator = sep }) "SEPARATOR") "Use SEPARATOR as the record separator, instead of newline."
|
则通过 useageInfo 会得到如下结果:
-s SEPARATOR --separator=SEPARATOR Use SEPARATOR as the record separator, instead of newline. |
这里的 SEPARATOR 就是 ReqArg 的第二个参数。
嗯,我知道,这个通过 GetOpt 文档中的例子可以猜出来 :)
* Text.Regex 中 matchRegex 返回些什么
Text.Regex 中的 matchRegex 在匹配成功后返回 Just strs, 这里的 strs 和 matchRegexAll 返回的第四个值是一样的,是在匹配过程中产生的 captured substring。看一个例子就清楚了:
Prelude> :m + Text.Regex
Prelude Text.Regex> let r = mkRegex "([a-z]+)([1-9]+)"
Prelude Text.Regex> matchRegex r "abc123"
Just ["abc","123"]
Prelude Text.Regex> matchRegexAll r "abc123"
Just ("","abc123","",["abc","123"])
|
To be continued.
阅读(1230) | 评论(0) | 转发(0) |