Вывод всех строк файла в другой в обратном порядке

Задача простая, но оцените эффектность решения в гибридном стиле (используется часть ООП и функционального стиля): открываем файл для записи, затем открываем исходный файл со строками, разбиваем по строке (с помощью splitLines), обращаем диапазон (алгоритм retro из std.range) и, наконец, с помощью анонимной функции и each записываем каждую строку в открытый для записи файл:

import std.algorithm;
import std.file;
import std.range;
import std.stdio;
import std.string;

void main()
{
    File file;
    file.open("result.txt", "w");
    (cast(string) std.file.read("test.txt"))
            .splitLines
            .retro
            .each!(a => file.writeln(a));
    file.close;
}

И все это мы провернули, используя лишь стандартную библиотеку!

Добавить комментарий