【问题标题】:Nice examples of imperative versus functional solutions to practical problems解决实际问题的命令式与函数式解决方案的好例子
【发布时间】:2012-03-28 02:33:51
【问题描述】:
我正在为几周后开始的课程编写一些课程材料。我选择 Clojure 作为学生学习的新语言。我想用一章来将命令式代码重构为函数式代码。为此,我想要一组不牵强的实际问题,通过这些问题我可以展示命令式和函数式解决方案的比较。最好这些问题不像项目 Euler 那样强调数学,而是普通程序员需要定期处理的问题。
谁有这方面的好资料?
部分答案:一个这样的来源是http://langref.org/。更多通缉!
【问题讨论】:
标签:
clojure
functional-programming
imperative
【解决方案1】:
这是一个古老的栗子,但仅仅以各种不同的方式实现阶乘函数就很有启发性。另一个常见的例子是素数生成器,它可以更大一些。
我知道这两个都是数学示例,但它们只需要基本知识。
【解决方案2】:
虽然不是很实用(因为短到足以在课堂上展示的实际问题往往有点无聊),但编写生命游戏是我最喜欢的学习新语言的方法之一。作为奖励,函数式方法与命令式解决方案完全不同(而且更优雅)。此外,处理数据序列的任何类型的问题(例如,分析推文序列的词频等)都是很酷的例子。