DSL в Clojure, который заменяет объектно-ориентированное программное решение?

Привет, ребята: Мне интересно, знает ли кто-нибудь конкретный пример DSL в Clojure, который заменяет абстракцию и читабельность хорошей OO-программы (написанной, скажем, на Java).

Я пытался перенести ОО-модель данных (которая основана на "бобах", с очень абстрактными методами, которые скрывают базовые реализации) в клозюрную моэиту...

Я знаю, что "макросы" и "функции высшего порядка" существуют, но я никогда не видел, чтобы они применялись к реальным наборам данных, которые легко понять (например, система регистрации курсов, или автосалон, или биллинговая система, или что-то в этом роде, вспомните печально известные примеры "JPetStore", которые Hibernate и Ibatis популяризировали в прошлом десятилетии).

Короче... Мой основной вопрос заключается в следующем:

Существуют ли какие-нибудь шаблоны для конкретных областей, чтобы научиться моделировать системы реального мира на Clojure с помощью протоколов и функций высшего порядка?

5
задан jayunit100 14 October 2011 в 18:02
поделиться