Плохие и хорошие практики при проектировании параметров функций
В этой статье я расскажу про неочевидные примеры неправильного проектирования аргументов функций. Про необязательные параметры в JavaScript, передачу флагов, нарушениях интерфейсов и использовании оператора rest не по назначению. Некоторые примеры ниже специфичны для JavaScript, остальные встречаются повсеместно Обязательные и необязательные параметры JavaScript, в отличие от большинства других языков, не проверяет наличие обязательных параметров при вызове функций. Любую функцию можно вызывать без...
188 читали · 9 месяцев назад
Коллапс волновой функции, лабиринты и комонады в монаде
На прошлой неделе мне попалась симпатичная, хоть и не новая мини-серия статей на канале @zdgzdgzdg про процедурную генерацию лабиринта методом "коллапса волновой функции". Автор привёл своё решение на JavaScript и достаточно подробно и хорошо его описал. Пока я читал эти статьи и знакомился с кодом, меня осенило: ведь это же вычисления в комонаде, погружённые в монаду! Я не издеваюсь, действительно, речь идёт о композиции двух паттернов функционального программирования: комонаде Zipper, превращающей...