Xtend представляет собой статически типизированный язык программирования от ...
Xtend
Xtend представляет собой статически типизированный язык программирования от команды Eclipse, который обладает тесной интеграцией и работает поверх JVM. Его корни лежат в языке программирования Java (
кто бы мог подумать). Xtend обладает рядом концептуальных улучшений:
- Выведение типов — нет необходимости постоянно указывать сигнатуры типов.
- Полная поддержка Java Generics — включая все соответствия и правила приведения.
- Замыкания — приятный синтаксис для анонимных классов.
- Перегрузка операторов — позволяет писать более выразительный код.
- Улучшенные switch выражения — на основе типов и приведения.
- Каждое выражение имеет значение (en. «No statements — Everything is an expression»).
- Шаблоны — с поддержкой пробелов.
- Поддержка расширений — JSR-330.
- Доступ к свойствам — синтаксический сахар над get/set.
- Полиморфный вызов методов.
- Транслируется в Java код, а не Bytecode — корректная работа с кодом, предназначенным для пратформ, таких как Android или GWT.
У разработчиков не стоит цели заменить Java. Библиотека Xtend является тонким слоем над JDK и работает равносильно с Java и Xtend. Разумеется, разработчики предоставляют современную IDE на основе Eclipse.
В предыдущих статьях этой серии мы изучали концептуальный базис монад, но ...
By Mike Vanier
В предыдущих статьях этой серии мы изучали концептуальный базис монад, но обсуждение наше было слишком абстрактным. Теперь, когда вы, я надеюсь, поняли, что монады такое и для чего они нужны, пришло время для детального рассмотрения специфических монад. Это значит, что мы определим корректные воплощения класса типов
Monad для множества различных понятий вычислений, которые мы увидели раньше. Мы используем наши знания, чтобы получить монадическую композицию в каждом конкретном случае через монадическое применение (оператор
>>=), и с помощью монадных законов мы выведем определение
return.
Читать дальше →
Помните, я говорил, что монады обобщают ...
Две фундаментальные монадические операции
Помните, я говорил, что монады обобщают композицию и применение функций? Вот об этом здесь и поговорим. Наберитесь терпения, нам потребуется какое-то время.
К этому моменту, я надеюсь, у вас сложилось хотя бы смутное ощущение монад, что они такое и для чего используются. Я уже упоминал одну из особенностей функционального программирования — композицию функций, благодаря которой мы создаем новые функции, объединяя старые. Функциональные программисты постоянно говорят о «комбинируемости» {1}, подразумевая, что если что-то в языке программирования не комбинируется, значит, оно немногого стоит. Аналогично, наши новоявленные монадические функции не были столь же полезны, если бы они не компоновались так, как это есть на самом деле. Но мы еще увидим, для их композиции нельзя использовать стандартную функцию «точка» (.) языка Haskell. Мы придем к выводу, что тут нужно что-то большее, и определим две фундаментальные монадические операции (или, для начала, их типы).
Читать дальше →