max_shane
@max_shane
Javascript / Node.js dev

Как бизнес-логика и модель данных описывается в функциональных языках?

Приветствую!
Немного погуглил, но так и не смог получить для себя четкого понимания, а как в функциональных языках типа Хаскел и Эрланга описывается бизнес-логика и модель данных?
Она хранится в базе данных?
И где кстати хранятся состояния?
  • Вопрос задан
  • 272 просмотра
Решения вопроса 1
wiz
@wiz
Ортодоксальный хаскелит
Технически, можно конечно вообще не описывать. Дали JSON и крутись как хочешь - в базе жсон, в программе жсон, на клиенте жсон. Но часто это неудобно и хочется его сначала перегнать во что-то прям сильно более специфическое для предметной области. Из {"something": "special"} в Special :: Something. И ещё столько раз, сколько того потребует достижение удобной работы. Ноль, один или более - не думаю, что это важно.

Я не знаю что именно там говорили на ютубе, но это похоже на вопрос наличия некоторой схемы, которую можно интерпретировать разными способами для разных целей и в разное время.

Можно сделать тип
data Something = Special | Ordinary | Composite This That
а потом при выгрузке использовать Generics, тайпклассы, TemplateHaskell или что-нибудь ещё чтобы получить код который будет из БД перекладывать в язык.

С бизнес-логикой всё ещё проще - код это данные, а данные это код. Есть EDSL на уровне хостового языка и логику ты пишешь на хаскеле, компилить и держать рядом с проектом. А есть DSL не использующие рантайм и к ним нужно прикручивать свою интерпретацию и сериализацию и хранить где угодно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы