Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
haskell [13/03/2018 14:38]
vlasov [6.6 Запуск и компиляция]
haskell [03/04/2018 11:30] (текущий)
vlasov [Урок 7. Знакомство с монадами]
Строка 1544: Строка 1544:
 ===== Урок 7. Знакомство с монадами ===== ===== Урок 7. Знакомство с монадами =====
  
-Понятие монад пришло из чистой математики,​ из ее раздела под названием "​теория категорий"​. И хотя полное понимание требует знакомства с математическим определением и свойствами,​ однако,​ возможно использование данного понятия в программировании,​ в частности,​ на языке Haskell исходя из объяснения необходимости монад или чего-либо подобного для чистого языка функционального программирования и исходя из примеров применения различных монад.+Понятие монад пришло из чистой математики,​ из ее раздела под названием "​теория категорий"​. И хотя полное понимание требует знакомства с математическим определением и свойствами,​ однако,​ возможно использование данного понятия в программировании,​ в частности,​ на языке Haskellисходя из объяснения необходимости монад или чего-либо подобного для чистого языка функционального программирования и исходя из примеров применения различных монад.
  
 Необходимость монад в чистом функциональном программировании возникает из ограничения,​ вытекающего из основных преимуществ данного стиля программирования. Вот такой парадокс. Так, Haskell не имеет возможность вводить глобальные переменные и как-то манипулировать ими внутри определений функций. Преимущество такого подхода дает надежность и уверенность для программиста (и для компилятора!!) в том, что в программе не будет побочных эффектов. Обратной стороной медали при этом будет то, что мы не можем с легкостью манипулировать,​ например,​ каким-то системными переменными,​ конфигурационными данными и т.п. У нас остается только возможность каждый раз при вызове функции вносить все требуемые данные в качестве параметров. Это загромождает описание функций и требует накладных расходов при реализации. Необходимость монад в чистом функциональном программировании возникает из ограничения,​ вытекающего из основных преимуществ данного стиля программирования. Вот такой парадокс. Так, Haskell не имеет возможность вводить глобальные переменные и как-то манипулировать ими внутри определений функций. Преимущество такого подхода дает надежность и уверенность для программиста (и для компилятора!!) в том, что в программе не будет побочных эффектов. Обратной стороной медали при этом будет то, что мы не можем с легкостью манипулировать,​ например,​ каким-то системными переменными,​ конфигурационными данными и т.п. У нас остается только возможность каждый раз при вызове функции вносить все требуемые данные в качестве параметров. Это загромождает описание функций и требует накладных расходов при реализации.
haskell.txt · Последние изменения: 03/04/2018 11:30 — vlasov
CC Attribution-Noncommercial 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0