7

数週間後に始まるコースのレッスン資料を書いています。私は学生が学ぶ新しい言語として Clojure を選びました。命令型コードを関数型コードにリファクタリングすることに 1 つの章を割きたいと思います。このために、命令型のソリューションと関数型のソリューションがどのように比較されるかを示すことができる、それほど現実的ではない一連の実際的な問題を用意したいと思います。プロジェクト Euler のように数学に重点を置いた問題ではなく、平均的なプログラマーが定期的に対処する必要がある問題であることが望ましいです。これについての良い情報源を持っているのは誰ですか?

部分的な回答: そのようなソースの 1 つがhttp://langref.org/です。もっと欲しい!

4

2 に答える 2

5

実際には実用的ではありませんが (クラスで提示されるほど短い実用的な問題は少し退屈になる傾向があるため)、人生ゲームをプログラミングすることは、新しい言語を学ぶための私のお気に入りの方法の 1 つです。おまけとして、関数型のアプローチは、命令型のソリューションとはまったく異なります (そしてより洗練されています)。さらに、一連のデータを操作する (たとえば、一連のツイートを分析して単語の頻度などを調べる) あらゆる種類の問題は、クールな例になります。

于 2012-03-11T14:46:26.370 に答える
3

それは古い栗ですが、階乗関数をさまざまな方法で実装するだけで、非常に明るくなります。もう 1 つの一般的な例は素数ジェネレーターで、これは少し大きくなる可能性があります。

どちらも数学の例だと思いますが、必要なのは基本的な知識だけです。

于 2012-03-11T15:44:41.390 に答える