А можно еще пару примеров задач, в которой такой подход удобнее чем изначальная реализация на Java? Или это только случаи когда код на Clojure уже есть и работает и надо его переиспользовать?
Попробуйте удалить 100 случайных файлов из папки DropBox, а потом восстановить их.
DropBox для этого не предназначен, а потому их интерфейс для этого крайне неудобен. Одно дело случайно удалить 1 файл и восстановить его — это да, без проблем. Но более сложные задачи — крайне не советовал бы.
Я один раз накосячил при перемещении папки дропбокса — в итоге оказалось проще восстановить все из Time Machine, чем лечить получившегося уродца.
Еще, на счет тестирования производительности. Я бы (доказать не могу, чисто «на всякий случай») вывод времени писал как:
time = System.nanoTime() — time;
System.out.println(" Some time " + time);
Идея: избежать каких-либо задержек от консольного вывода при замере конечной точки.
А вообще, по-хорошему, еще круче померять одно и то же несколько итераций, откинуть мин и макс, а для остального взять среднее. Прошу поправить, если ошибаюсь
Интересная статья, спасибо — интересная структура. Несколько вопросов (не сочтите за «пинки»):
1. Почему бы не выделить тестирование производительности в отдельный класс? По-моему так правильнее
2. Сравнивали ли вы свою реализацию с этой? github.com/megatherion/Unrolled-linked-list
3. Какая лицензия? (я мало пользуюсь Github — может там везде GPL, но я не в курсе)
Вцелом мне понравилось, хотя действительно было бы еще интересно прикрутить concurrency
Какие преимущества дает Clojure?
DropBox для этого не предназначен, а потому их интерфейс для этого крайне неудобен. Одно дело случайно удалить 1 файл и восстановить его — это да, без проблем. Но более сложные задачи — крайне не советовал бы.
Я один раз накосячил при перемещении папки дропбокса — в итоге оказалось проще восстановить все из Time Machine, чем лечить получившегося уродца.
time = System.nanoTime() — time;
System.out.println(" Some time " + time);
Идея: избежать каких-либо задержек от консольного вывода при замере конечной точки.
А вообще, по-хорошему, еще круче померять одно и то же несколько итераций, откинуть мин и макс, а для остального взять среднее. Прошу поправить, если ошибаюсь
1. Почему бы не выделить тестирование производительности в отдельный класс? По-моему так правильнее
2. Сравнивали ли вы свою реализацию с этой? github.com/megatherion/Unrolled-linked-list
3. Какая лицензия? (я мало пользуюсь Github — может там везде GPL, но я не в курсе)
Вцелом мне понравилось, хотя действительно было бы еще интересно прикрутить concurrency