Chinaunix首页 | 论坛 | 博客
  • 博客访问: 318353
  • 博文数量: 48
  • 博客积分: 4510
  • 博客等级: 中校
  • 技术积分: 556
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-05 18:19
文章分类

全部博文(48)

文章存档

2012年(1)

2011年(9)

2010年(1)

2009年(12)

2008年(25)

分类:

2008-08-22 20:35:36

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) |
给主人留下些什么吧!~~