Язык Haskell: О пользе и вреде лени: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 13:
Язык программирования Haskell — это «ленивый» [[:w:функциональное программирование|функциональный язык программирования]] с [[:w:полиморфизм в языках программирования|полиморфизмом типов]]. Он достаточно необычен: других таких ленивых и настолько чистых функциональных языков нет! Что означают слова «чистый», «функциональный» и «полиморфизм типов», в двух словах не объяснить.
 
Язык [[:w:Haskell|Haskell]] (Ха́скел) функциональный, поскольку в нём основное поняние — это функции. Но функции есть в любом языке программирования! В языках Паскаль, Бейсик, Си, [[w:Python|Питон(Python)]]... — везде есть понятие функции, и везде мы можем определять свои функции. Но не торопитесь делать выводы. Речь идёт не только о формальных возможностях языка, но и о ''стиле составления программ''. В функциональных языках программирования с функциями можно работать так же, как с числами или строковыми переменными. Например, представьте себе функцию, которая в качестве аргумента принимает некоторую функцию, а в качестве результата возвращает другую функцию. Возможность создавать переменные типа функций в языках Си/Си++, Паскаль, Delphi есть{{ref|cons1}}, но ею пользуются крайне редко. Перечисленные языки ''процедурные'', и они не приспособлены для того, чтобы писать программы в функциональном стиле.
 
Функциональный программист мыслит в терминах функций и зависимостях функций друг от друга. Императивный программист мыслит в терминах действий и объединения последовательностей действий в процедуры.