Сообщение Re[3]: Монады - пример где бы были полезны... от 29.08.2019 21:19
Изменено 29.08.2019 22:25 Poopy Joe
Re[3]: Монады - пример где бы были полезны...
Здравствуйте, takTak, Вы писали:
J>>Бывает, но в haskel'е. Для того, чтоб монады были полезны на практике нужен high kinded polimorphism, которого в жаба-шарпах нету
T>а можно как-то поподробнее и "на пальцах"?
На практике это утверждение выше неверно. В шарпе есть линк, который монада и который вполне себе полезен. high kinded polimorphism позволяет определенные вещи (трансформеры например), недоступные в других языках, но совершенно не является чем-то критическим.
T>допустим, в яве -шарпах, мне не нравится такой код
Такой код к монадам отношение имеет довольно слабое. Ключевой оператор у монады это bind.
T>
T>с помощью Maybe / Option / Either- монад его можно переписать во что-то более удобочитаемое,
Тут даже вопрос не только в читаемости, которой в примере спагетти года нет вообще. Проблема в том, null не имеет типа. У maybe и either он есть.
J>>Бывает, но в haskel'е. Для того, чтоб монады были полезны на практике нужен high kinded polimorphism, которого в жаба-шарпах нету
T>а можно как-то поподробнее и "на пальцах"?
На практике это утверждение выше неверно. В шарпе есть линк, который монада и который вполне себе полезен. high kinded polimorphism позволяет определенные вещи (трансформеры например), недоступные в других языках, но совершенно не является чем-то критическим.
T>допустим, в яве -шарпах, мне не нравится такой код
Такой код к монадам отношение имеет довольно слабое. Ключевой оператор у монады это bind.
T>
T>if (a != null)
T> {
T> if (a.Prop1 != null)
T> {
T> }
T> }
T>
T>с помощью Maybe / Option / Either- монад его можно переписать во что-то более удобочитаемое,
Тут даже вопрос не только в читаемости, которой в примере спагетти года нет вообще. Проблема в том, null не имеет типа. У maybe и either он есть.
Re[3]: Монады - пример где бы были полезны...
Здравствуйте, takTak, Вы писали:
J>>Бывает, но в haskel'е. Для того, чтоб монады были полезны на практике нужен high kinded polimorphism, которого в жаба-шарпах нету
T>а можно как-то поподробнее и "на пальцах"?
На практике это утверждение выше неверно. В шарпе есть линк, который монада и который вполне себе полезен. high kinded polimorphism позволяет определенные вещи (трансформеры например), недоступные в других языках, но совершенно не является чем-то критическим.
T>допустим, в яве -шарпах, мне не нравится такой код
Такой код к монадам отношение имеет довольно слабое. Ключевой оператор у монады это bind.
T>
T>с помощью Maybe / Option / Either- монад его можно переписать во что-то более удобочитаемое,
Тут даже вопрос не только в читаемости, которой в примере спагетти-кода нет вообще. Проблема в том, null не имеет типа. У maybe и either он есть.
J>>Бывает, но в haskel'е. Для того, чтоб монады были полезны на практике нужен high kinded polimorphism, которого в жаба-шарпах нету
T>а можно как-то поподробнее и "на пальцах"?
На практике это утверждение выше неверно. В шарпе есть линк, который монада и который вполне себе полезен. high kinded polimorphism позволяет определенные вещи (трансформеры например), недоступные в других языках, но совершенно не является чем-то критическим.
T>допустим, в яве -шарпах, мне не нравится такой код
Такой код к монадам отношение имеет довольно слабое. Ключевой оператор у монады это bind.
T>
T>if (a != null)
T> {
T> if (a.Prop1 != null)
T> {
T> }
T> }
T>
T>с помощью Maybe / Option / Either- монад его можно переписать во что-то более удобочитаемое,
Тут даже вопрос не только в читаемости, которой в примере спагетти-кода нет вообще. Проблема в том, null не имеет типа. У maybe и either он есть.