Haskell中的小巧简单的现实生活编程示例?

时间:2010-06-24 16:40:25

标签: haskell functional-programming

我知道,我可能会问很多,但是任何人都知道Haskell的一些不错的编程示例/库。

对于“编程入门”课程,我想表明Haskell不仅仅是一种“用于排序数字的小脚本语言”。

我已经找到了一个令人印象深刻的Quake克隆版本(Real world Haskell programming),但是对于学生来说太复杂了。

你知道吗?也许是图形或与Web服务交互的东西?适合第一年学生的东西。

感谢您的输入!

[更新]

或许你知道一个“有趣”的图书馆?

7 个答案:

答案 0 :(得分:7)

http://hackage.haskell.org上挖掘 - 那里有2200多个图书馆和程序,其中许多位于games section,特别是设计用于教学。就像这个jpeg encoder一样,或者这个很好mp3 decoder

在实用性方面,core of xmonad简洁,纯净,每天都有数千人使用。

答案 1 :(得分:4)

我将为Star RoverFreekick添加一个插件,原因如下:

  • 他们是游戏,所以他们对学生有“哇”的因素(尽管现在可玩性相当有限 - Freekick基本上反对自己,如果你可以杀死Star Rover中的敌人,你会更好比我更好的游戏玩家。
  • 开发人员写了very informative blog,帮助学生了解学习曲线。
  • 这两款游戏都是一些非常简单的代码片段,学生们可以立即理解这些片段:例如,树模块或者弧度到度数的转换函数。
  • 库依赖关系相对最小:主要是OpenGL和SDL。
祝你好运,希望这会有所帮助。

答案 2 :(得分:4)

正如其他人所说,xmonad是一个好主意,如果你可以向他们展示它。顺便说一下,Simon Peyton Jones在他的教程“A Taste of Haskell”http://research.microsoft.com/en-us/um/people/simonpj/papers/haskell-tutorial/index.htm

中非常引人注目地使用xmonad

当然,它不那么直观,但我打算投票给Pandoc投票 - 专注于非常简单的中央模块the definition of a 'document',并展示 pure <由'writers''readers'readMarkdownwriteLatex等)导出的/ em>函数与之相关。

答案 3 :(得分:3)

我所知道的最受欢迎的例子是the xmonad tiling window manager。这是一个人们实际使用的真实世界的程序,而且代码库非常小而且写得很好(我被告知 - 我几乎认为自己没有资格判断大多数人的Haskell代码)。

答案 4 :(得分:1)

This是基于九十九个Prolog问题的九十九个Haskell问题的链接。我不知道它是不是你想要的,但可能会有一些你可以使用的东西。

答案 5 :(得分:0)

当我学习Haskell时,我使用Hangman作为第一个程序。它很简单,有用户和文件交互,很少但有些错误处理等等。你的所有学生都会听说过它,或者可以快速地教授游戏。我认为我的程序最终只是围绕着一段代码。

答案 6 :(得分:0)

catwc和朋友呢?