Haskell,Hackage,GHC和生产力。 如何解决一个真实的例子?

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

我询问有关它的帮助(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 ),那么:我不能用阴谋来安装(直接)?我应该下载并修补它?我应该寻找另一个替代的作用呢?

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

我真的迷失了。

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

最好的祝福。


以下是决定使用哪些软件包时的一般流程。 首先,我尝试找出符合我需求的多个软件包。 然后,我会仔细查看每个包,以根据下面列出的标准来确定哪些包对我来说最合适。

  • 通常使用当前维护的软件包更好。 要确定软件包当前是否维护,请查看软件包描述页面上的“上传日期”链接。 (当然,还有一些旧的可靠的软件包,因为它们不需要修改,所以没有经过修改。)

  • 通常使用成熟的软件包比较好,所以我查看软件包描述页面上的版本号。 版本号为7.3.5的软件包可能比版本0.1软件包更成熟。

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

  • 通常使用流行的软件包通常会更好,因为任何问题都可能会被迅速解决,其他用户可以回答问题。 我通常会做一个Google搜索,看看Haskell邮件列表和StackOverflow经常提到哪些包。

  • 通常使用不需要很多软件包的软件包会更好,因此我在软件包描述页面上查看“依赖关系”部分。

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


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

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

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

    链接地址: http://www.djcxy.com/p/43381.html

    上一篇: Haskell, Hackage, GHC and productivity. How to solve a real example?

    下一篇: How does the ST monad work?