Как сделать программу в декларативном стиле?
Я наслаждаюсь кукольной декларативной моделью. Я хотел бы попытаться включить больше этого в мой код.
Однако в настоящее время я программирую на python, и при этом я склонен думать об этом. Это как моя проблема с графическим дизайном: я знаю, что мне нравится видеть в конечном продукте, но не знаю, как его собрать.
Как я могу структурировать вещи так, чтобы код был декларативным? Какие начальные шаги предпринимаются, если решение должно быть узнаваемо "декларативным"?
Функциональное, декларативное и императивное программирование. Я только что прочитал это, чтобы немного понять.
Не достаточно, не могу выразить это словами, мое замешательство:(
РЕДАКТИРОВАТЬ: Слова пришли: примеры, приведенные для декларации всегда даны в терминах некоторых других вещей высокого уровня:
Конечно, Regexen декларативны, но вы делаете движок из C.
Make, безусловно, декларативно, но написано на C.
Манифесты марионеток, конечно, декларативны, но код Ruby - нет.
Так в какой момент я говорю: "Хорошо, вот методы, теперь я могу начать декларативную часть"?
1 ответ
В функциональном языке пишите в функциональном стиле, в императивном языке пишите в императивном стиле и в декларативном языке пишите в декларативном стиле.
Как указано выше (исключая все разрешенные "перекрестные стили"), когда вы пишете на языке, вы пишете в стиле языка. В случае написания "деклятивно" на "императивном" или "функциональном" языке это обычно сводится к написанию декларативного DSL и / или API без фактического изменения основного стиля, используемого для представления (или даже склейки), указанного декларативно-дружественного DSL/API.
Например, make
(или любое количество XML-языков, таких как ant
) являются просто декларативными DSL (с некоторым размытием). Язык принимающей стороны не важен. Это можно обобщить практически для всех основных языков Turing Complete.