module pind.samples.ja.ufcs.ufcs_3; // すべての要素を'divisor'で // 割った結果を返す int[] divide(int[] slice, int divisor) { int[] result; result.reserve(slice.length); foreach (value; slice) { result ~= value / divisor; } return result; } // すべての要素を'multiplier'で // 乗算した結果を返す int[] multiply(int[] slice, int multiplier) { int[] result; result.reserve(slice.length); foreach (value; slice) { result ~= value * multiplier; } return result; } // 奇数値を持つ要素をフィルタリングする int[] evens(int[] slice) { int[] result; result.reserve(slice.length); foreach (value; slice) { if (!(value % 2)) { result ~= value; } } return result; } import std.stdio; // ... void main() { auto values = [ 1, 2, 3, 4, 5 ]; writeln(evens(divide(multiply(values, 10), 3))); }