Вот есть разные "парадигмы программирования" - понятие, как будто, довольно условное, - его проще познать из собственного чувственного опыта, чем строго определить. Но речь не про то. Среди оных парадигм самая интригующая - это функциональное программирование. Википедия говорит, что под функциональным программированием понимаются две вещи, вероятно, связанные.
1) Теория. Всякий милый "матан", используемый для формализации: лямбда-исчисление, функции высших порядков, карринг, вот это все. Это не основной вопрос, но все же было бы любопытно узнать: есть ли в этой всей теории яркие и понятные простому человеку теоремы и/или проблемы?
2) Практика. Многие пишут, что цимес функционального программирования в том, что функция (прогерская) похожа на функцию (математическую). Результат вычисления математической функции зависит только от аргументов функции. А в каких-нибудь плюсах это не так, потому что функция может обращаться к глобальным переменным явно или не явно, и результат ее выполнения зависит не только от аргументов, но и от того, сколько пива выпил программист накануне вечером.
Так вот вопрос по второму пункту. Верно ли, что идеальный пример функционального программирования - это шейдеры? Как будто, что в gpu засунешь, то он и пожнёт, включая сам шейдер как таковой. Но я не видел, чтобы шейдерные языки причисляли к функциональным. Таки где подвох?
Комментариев нет:
Отправить комментарий