3

我不知道解决简单(可能)问题(黑客相关)的最佳方法。

我寻求帮助(http://stackoverflow.com/questions/12841599/haskell-hackage-ghc-and-productivity-what-to-do)但我知道解释得不好。

今天,我遇到了这个亲属的问题。

具体问题不相关,但它是:

`Write a function that, given a string, remove diacritics.`

例子:

`simpleWord "Cigüeñal" <-> "Ciguenal"

正确的方法(我认为)是使用标准的 Unicode 规范化。在某些语言/框架(.Net、PHP、Python、...)中存在一些相关功能。

在 Haskell 中,由于 hackage 社区也存在:

`Text.Unicode.Normalization.normalize`

但是,我无法使用(例如)ghc-7.4 安装,但compact-string(取决于)失败。

修复compact-string存在(compact-string-fix)然后:我不能使用 cabal 安装(直接)吗?我应该下载并修补它吗?我应该寻找另一种替代功能吗?

我解释了一个具体的真实案例(简单或复杂,不关心),问题(我寻求帮助)是新手haskeller 如何知道选择正确库的最佳方法,ghc 正确(平衡)版本,不撞墙。

我真的迷路了。

真的,非常感谢您的任何建议。

此致。

4

2 回答 2

11

文档compact-string说,“这个包已经过时了。text改用。”。

文档text说:“要使用扩展且非常丰富的函数系列来处理 Unicode 文本(包括规范化、正则表达式、非标准编码、文本中断和语言环境),请参阅text-icu包。”。

的文档text-icu显示它成功构建在 GHC 7.4 上并支持 Unicode 规范化。

于 2012-10-27T14:17:11.300 回答
1

这是我在决定使用哪些包时遵循的一般过程。首先,我尝试确定满足我需求的多个包。然后我会更仔细地查看每个包裹,根据下面列出的标准来尝试确定哪些最适合我。

  1. 通常最好使用当前维护的包。为了确定当前是否维护了一个包,我检查了包描述页面上的“上传日期”链接。(当然,也有一些久经考验的老包,因为它们不需要修改,所以很久没有修改了。)

  2. 通常最好使用成熟的包,所以我在包描述页面查看版本号。版本号为 7.3.5 的包可能比版本 0.1 的包更成熟。

  3. 通常最好使用有据可查的软件包。有时在 Haddock 文档中有一个很好的例子来说明如何使用这个包(耶!)。我还会检查包描述页面上的“主页”链接,因为那里通常会有更多文档。

  4. 通常最好使用流行的软件包,因为任何问题都可能很快得到解决,并且其他用户可以回答问题。我通常会做一个谷歌搜索,看看在 Haskell 邮件列表和 StackOverflow 上最常提到哪些包。

  5. 通常最好使用不需要很多我还没有的包的包,所以我检查了包描述页面上的“依赖项”部分。

在为任何编程语言选择包时,我倾向于遵循这个过程,而不仅仅是 Haskell。

于 2012-10-28T18:06:50.933 回答