对实际问题的命令式和功能性解决方案的好例子

时间:2012-03-11 11:13:30

标签: clojure functional-programming imperative

我正在为几个星期开始的课程写一些课程材料。我选择Clojure作为学生学习的新语言。我想专门用一章来重构命令式代码到功能代码。为此,我想提出一系列实用问题,这些问题并不遥远,我可以通过它来展示必要性和功能性解决方案的比较。优选地,问题不像项目Euler那样强调数学,而是普通程序员需要定期处理的问题。 谁有这方面的好消息?

部分答案:其中一个来源是http://langref.org/。更想要的!

2 个答案:

答案 0 :(得分:5)

虽然不太实际(因为实际问题很短,无法在课堂上呈现,但往往有点无聊),编写生命游戏是我学习新语言的最佳方式之一。作为奖励,功能方法与命令式解决方案完全不同(并且更优雅)。此外,您操纵数据序列的任何类型的问题(例如,分析一系列推文的词频或其他内容)都可以作为很好的例子。

答案 1 :(得分:3)

这是一个古老的板栗,但只是以各种不同的方式实现阶乘功能是非常有启发性的。另一个常见的例子是素数生成器,它可以更大一些。

我意识到这些都是数学例子,但它们只需要基础知识。