Хочу поделиться с вами горячими клавишами, которыми пользуюсь или к которым пытаюсь привыкнуть в своей повседневной работе. В современных средах их количество может просто зашкаливать, но постепенное добавление новых сочетаний в копилку, способно значительно повысить вашу продуктивноть. Приведенные сочетания относятся к редактированию, навигации, рефакторингу и справедливы только для раскладки Default for XWin (Linux).
Владимир Богатырев @vobo
Пользователь
Чем хороши свободные монады
10 min
19KПредлагаю читателям «Хабрахабра» перевод статьи «Why free monads matter».
Хорошие программисты разделяют данные и интерпретаторы, которые эти данные обрабатывают. Примером могут служить компиляторы, представляющие исходный код как абстрактное синтаксическое дерево, которое впоследствие может быть обработано одним из многочисленных интерпретаторов. А именно, мы можем:
Преимущества такого разделения очевидны. Давайте попытаемся построить абстракцию, отображающую суть синтаксического дерева. Лучше начать с конкретного примера. Для этого мы спроектируем наш собственный игрушечный язык и попытается оформить его в виде типа данных.
Интерпретаторы
Хорошие программисты разделяют данные и интерпретаторы, которые эти данные обрабатывают. Примером могут служить компиляторы, представляющие исходный код как абстрактное синтаксическое дерево, которое впоследствие может быть обработано одним из многочисленных интерпретаторов. А именно, мы можем:
- скомпилировать и выполнить его;
- непосредственно запустить с помощью традиционного интерпретатора;
- сжать и архивировать;
- просто оставить его в покое.
Преимущества такого разделения очевидны. Давайте попытаемся построить абстракцию, отображающую суть синтаксического дерева. Лучше начать с конкретного примера. Для этого мы спроектируем наш собственный игрушечный язык и попытается оформить его в виде типа данных.
+23
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity