我不知道解决简单(可能)问题的最佳方法(与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
)然后:我不能使用cabal安装(直接)?,我应该下载并修补它吗?我应该寻找另一种功能替代方案吗?大约?
我解释了一个具体的实际案例(简单或复杂,不关心),问题(我请求帮助)是一个新手哈克勒,怎么能知道选择正确库的最佳方法,ghc正确(平衡) )版本,没有撞墙。
我真的迷失了。
真的,非常感谢你的任何建议。
最好的问候。
答案 0 :(得分:11)
compact-string
的文档说:“此软件包已过时。请改用text
。”。
text
的文档说:“要使用扩展且非常丰富的函数系列来处理Unicode文本(包括规范化,正则表达式,非标准编码,文本破坏和区域设置),请参阅text-icu
包。“。
text-icu
的文档显示它成功构建于GHC 7.4并支持Unicode规范化。
答案 1 :(得分:1)
这是我在决定使用哪些软件包时遵循的一般过程。首先,我尝试识别满足我需求的多个包。然后,根据下面列出的标准,我会仔细查看每个包,以确定哪些包最适合我。
通常最好使用当前维护的包。要确定当前是否维护包,请检查包描述页面上的“上载日期”链接。 (当然,有些旧的经过验证的软件包由于不需要修改而长期没有修改过。)
使用成熟的软件包通常会更好,所以我检查软件包描述页面上的版本号。版本号为7.3.5的软件包可能比0.1版软件包更成熟。
通常最好使用文档齐全的软件包。有时在Haddock文档中有一个如何使用该包的好例子(耶!)。我还会检查包描述页面上的“主页”链接,因为那里通常会有更多文档。
通常最好使用流行的软件包,因为任何问题都可能很快得到解决,而其他用户可以回答问题。我通常会进行谷歌搜索,看看在Haskell邮件列表和StackOverflow上最常提到的包。
通常最好使用不需要很多软件包的软件包,所以我检查软件包描述页面上的“依赖项”部分。
在为任何编程语言选择包时,我倾向于遵循此过程,而不仅仅是Haskell。