Comments 8
А почему бы Nothing не объявить просто как константу типа Maybe, вместо синглетона?
+1
Вопрос: зачем вообще библиотека монад в PHP? Это же неидеоматичное использование языка.
В Haskell монады крайне полезны и идеоматичны, например, они обеспечивают статические гарантии на уровне системы типов: разделение чистого кода и кода с побочными эффектами, выделение STM-транзакций и т.п. Там даже сахар на уровне языка для них есть.
Цель — популяризация функционального подхода? Честно говоря, я и в компактной нотации Haskell с трудом осваиваю нетривиальные концепции теории категорий, а когда они приправлены ООП и всяческой шелухой, то я и вовсе теряюсь.
В Haskell монады крайне полезны и идеоматичны, например, они обеспечивают статические гарантии на уровне системы типов: разделение чистого кода и кода с побочными эффектами, выделение STM-транзакций и т.п. Там даже сахар на уровне языка для них есть.
Цель — популяризация функционального подхода? Честно говоря, я и в компактной нотации Haskell с трудом осваиваю нетривиальные концепции теории категорий, а когда они приправлены ООП и всяческой шелухой, то я и вовсе теряюсь.
+2
Да конечно особо они не нужны (да что уж там, я бы назвал это баловством), особенно в нетепизированных то языках. Но если пользоваться с умом, то код станет в разы чище и читабельнее.
И да конечно же, да прибудет функциональщина, за лямбду!
P.S. Тут скорее идет не приправление функциональщины ООП, а наоборот. Сколько раз я проклинал NPE после использования скалы с Option'ами…
И да конечно же, да прибудет функциональщина, за лямбду!
P.S. Тут скорее идет не приправление функциональщины ООП, а наоборот. Сколько раз я проклинал NPE после использования скалы с Option'ами…
+2
Многим кажется, что они поняли монады после знакомства Maybe. На самом деле всё немножно сложнее, ведь каждую монаду приходится осознавать заново. Есть ведь ещё Reader, State, Cont etc., трансформеры монад и проблемы коммутации, связь с аппликативными функторами и комонадами, много всего.
> код станет в разы чище и читабельнее.
Код повысит входную планку для читателей. Для просвещённых он будет читабельнее, для большинства же — врядли.
> Сколько раз я проклинал NPE после использования скалы с Option'ами
Maybe/Optional не спасают от ошибок, они лишь указывают о возможности ошибки на уровне системы типов. Без статической проверки типа от них гораздо меньше прока.
> код станет в разы чище и читабельнее.
Код повысит входную планку для читателей. Для просвещённых он будет читабельнее, для большинства же — врядли.
> Сколько раз я проклинал NPE после использования скалы с Option'ами
Maybe/Optional не спасают от ошибок, они лишь указывают о возможности ошибки на уровне системы типов. Без статической проверки типа от них гораздо меньше прока.
0
Многим кажется, что они поняли монады после знакомства Maybe. На самом деле всё немножно сложнее, ведь каждую монаду приходится осознавать заново.
естественно каждая монада личность :)
Код повысит входную планку для читателей. Для просвещённых он будет читабельнее, для большинства же — врядли.
Согласен, но начать читать не так уж и сложно.
Maybe/Optional не спасают от ошибок, они лишь указывают о возможности ошибки на уровне системы типов. Без статической проверки типа от них гораздо меньше прока
Прока может быть и меньше, но все же если придерживаться того, что null — это значение, а не его отсутствие, и пользовать где нужно Maybe. Должны полностью убрать возможность пропустить какой нибудь null там где это не ожидается
+1
del
0
Спасибо за дополнение, тем более что сам я в функциональщине полный ноль.
По поводу неполноценности монад в той статье могу лишь сказать, что изначальная статья писалась как раз с тем расчетом, чтобы показать, что некоторые идеи из ФП довольно удобны, и очень вероятно, что у Феррары просто напросто не было задачи написать правильные монады с точки зрения ФП.
По поводу неполноценности монад в той статье могу лишь сказать, что изначальная статья писалась как раз с тем расчетом, чтобы показать, что некоторые идеи из ФП довольно удобны, и очень вероятно, что у Феррары просто напросто не было задачи написать правильные монады с точки зрения ФП.
0
Sign up to leave a comment.
И снова про монады в PHP