Аннотация:
Данная работа является дальнейшим развитием исследований по применению функционального программирования для численных методов. В частности, функциональное программирование может помочь в перенесении программ на графические ускорители с технологией CUDA. В предыдущих работах основной упор делался на функторах (и аппликативных функторах). Теоретические основы монадных вычислений излагались, но то, как их можно применять на практике, не говорилось. В настоящей работе делается попытка восполнить этот пробел. Один из базовых принципов функционального программирования - композиция функций, которая позволяет строить из простых функций сложные и, таким образом, упрощает написание сложных программ. Монадные вычисления позволяют строить цепочки сложных вычислений. Такие цепочки - это тоже, в некотором смысле, композиция функций, но на более высоком, монадном уровне.