有哪些使用Haskell的开放源代码程序可以被认为是高质量的现代Haskell?代码库越大越好。

我想从他们的源代码中学习。我觉得我已经无法从小型代码示例中学习了,这些示例通常是深奥的和小型的。我想看看代码的结构,当发生很多事情(日志记录,I / O,配置等)时,monad如何交互。

评论

即使这个问题已经解决,用户仍然可以编辑“接受的”答案并将其答案添加到该答案。

#1 楼

我的建议。

阅读1990年代不同研究生院的人的代码


牛津风格

格拉斯哥风格或(this )

鲸鱼风格(或此)
约克风格
波特兰风格或OGI风格(或此)
乌得勒支风格
耶鲁风格
特殊情况:CMU / Elliott


由老主人读某些人的代码(不完整列表)



马洛帕特森佩顿·琼斯;鳃; Launchbury;休斯瓦德勒鸟;克拉森;琼斯托尔马赫;牧; Swiestra;奥古斯森朗西曼华莱士;汤普森Hinze;长臂猿;莱恩;哈达克艾略特Finne; Chakravarty;和
任何写过实用的珍珠的人。

请注意,像我这样的人,库茨(Coutts),米切尔(Mitchell),奥沙利文(O'Sullivan),琳娜(Lynagh)等人都从这些人那里学习了我们的Haskell风格。

阅读一些应用程序


阅读GHC基础库源代码

阅读xmonad源代码



评论


这是典型的haskell damit。使用php,您可以阅读一个世界,并直接撰写可怜的网站。使用haskell,您可以学到的东西没有上限,总是会有更多有趣的扩展和论文。刚才我才知道大学风格各异,因此我必须检查所有这些……我什么时候有时间实际编写自己的haskell项目? :)

–塔拉施
2011年6月18日22:10



简而言之,不同风格的特征是什么?

– grautur
2011年6月19日19:00

@grautur:而且,更重要的是,它们为什么不同?有好的技术理由吗?

– Robert Massaioli
2011年6月20日13:51

在我看来,不同的风格是维基百科/互联网时代之前不同学校地域分离的结果(有时是哲学上的分歧)。以及每所学校的原始Haskell语言所带来的影响力。随着Hackage,Wiki和github的出现,现在基本上有了一种统一的Haskell风格(基于格拉斯哥和GHC的使用)。

–唐·斯图尔特
2011年6月20日18:44

在CMU,我学习了指称语义和程序派生(规范到实现的系统转换),这两者都对我的编程方法产生了深远的影响。您会在我的博客中定期看到这两个主题。当我在软件库上工作时,我会选择少量类型并从一个中心问题开始:“这是什么意思?”。当我看到低级代码(例如,命令式/ IO)时,我会问“该代码是什么表示抽象的实现,以及该实现如何从抽象中派生出来?”

–锥形
2011年6月22日在6:12

#2 楼

XMonad是一个开源的切片窗口管理器,最初是在dwm上进行松散建模的。有很多扩展,质量各不相同,但核心是紧凑且组织良好的。

评论


fwiw的核心也经过精心设计。核心的核心StackSet已在Coq定理证明者中得到验证(即QC属性成立)。这是病理设计护理的一个例子。

–唐·斯图尔特
2011年6月18日在21:49

@don:“病态”与“好”一样,不是吗? :)

– Francesco
2011年6月19日下午5:20

是的:-) Spencer和我对xmonad核心的设计比我参与的任何项目都更加谨慎。

–唐·斯图尔特
2011年6月19日下午5:21

#3 楼



Haskell: Functional Programming with Types

Joeri van Eekelen等。 | Wikibooks
2007年出版,共290页


Learn You a Haskell for Great Good!

Miran Lipovaca | LearnYouaHaskell.com
于2010年出版,176页


Real World Haskell

2008年出版,共710页


The Haskell Road to Logic, Maths and Programming

Kees Doets,Jan van Eijck |高校出版物
2004年出版,共449页



评论


这些是书籍,不是真实项目的源文件。

–ses
2014年7月9日下午1:38

#4 楼

Darcs是一个开源的源代码管理系统。对于Haskell,应该会给您一个好主意。

评论


在darcs上做了相当多的工作后,我真的不会推荐它的源代码。它没有使用我认为好的Haskell样式。我想如果您很好奇,当小型代码库有机增长时会变大,那会发生什么呢?如果您希望看到一个具有一致的写作风格或清晰的设计目标的程序,我可以在其他地方查找。

–詹森·达吉特(Jason Dagit)
2011年6月20日下午4:05

#5 楼

Yesod Web平台的源代码相当复杂,经过深思熟虑并且编写得很好。您还将从其附带的持久性库中学到很多。

#6 楼

如果您关心Web编程,我会推荐Chris Done的lpaste项目。

评论


也许这是github.com/lpaste/lambda-paste?

– TobiMcNamobi
18年11月7日,11:21



#7 楼

GHC可能是Haskell编写的最大的或最大的开源项目之一。当我说最大的时候,我不仅要指来源的大小,还应指影响,使用,创新和稳健性。 GHC可以教给您很多有关编写Haskell的知识。