C++ で関数型プログラミング
整数を読んでその階乗を出力するだけのプログラム。
#include <iostream> #include <algorithm> #include <iterator> // istream_iterator, ostream_iterator using namespace std; int factorial(const int n) { return (n <= 1) ? 1 : n * factorial(n-1); } int main() { transform(istream_iterator<int>(cin), istream_iterator<int>(), ostream_iterator<int>(cout, "\n"), factorial); }
地味に楽しい。しばらくこのスタイルでいろいろ書いてみよう。
型推論とかパターンマッチとか欲しくなりそうだけど。
ループを自分で書いたほうが速いプログラムができるだろうけど。