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

Задача обращения строк файла простая, но оцените эффектность и изящность нашего решения в гибридном стиле (используется часть ООП и немного от функционального стиля).

Работает обращение файла следующим образом: открываем файл для записи, затем открываем исходный файл со строками, разбиваем исходный файл по строкам (с помощью 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;
}

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

aquaratixc

Программист-самоучка и программист-любитель

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