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

→‎Темы: Использован шаблон (были: явные категории); Категория:Haskell (язык программирования) после переименования.
м (Откат правок Lilianpahomi12345 (обс.) к версии Oleg3280)
(→‎Темы: Использован шаблон (были: явные категории); Категория:Haskell (язык программирования) после переименования.)
<code>map f xs = [ f x | x &lt;- xs].</code>
 
Это соответствует математической записи
 
: <math>map(f,xs) = \left\{ f(x) | x \in xs \right\}</math>.
|<code>countUnits 255</code>
|<math>\Rightarrow</math>
|8.
|}
 
 
Для многих программистов не секрет, что на процедурных языках можно писать [[w:Объектно-ориентированное программирование|объектно-ориентированным]] образом, а на объектно-ориентированных языках писать программы, следуя процедурному стилю программирования.
Аналогично, практически на всех языках можно использовать функциональный стиль программирования. Это связано с тем, что создатели языков стараются сделать их достаточно универсальными, чтобы они успешно использовались при решении разных задач. Абсолютной универсальности достичь невозможно. Хотя есть некоторые удачные экземпляры, такие как язык Python, которые покрывают большой диапазон стилей программирования и в то же время имеют достаточно простой синтаксис. Универсальность языка не всегда является плюсом. Часто она влечёт за собой сложность синтаксиса и неоднозначность языковых конструкций. Конечно, сам язык (транслятор языка) все конструкции интерпретирует вполне однозначно, а вот программист, если язык слишком универсальный, может запутаться. Есть множество забавных примеров — коротких программ на Си и Си++, в которых недостаточно опытные специалисты даже не могут разобраться, пока не скомпилируют их, не запустят и не проведут часок-другой за их исследованием.
 
Ограничения, которые вы встретите в языке программирования Haskell, следует уважать. Они спасают вас от множества проблем, которые могли бы возникнуть, если бы вы писали на слишком универсальном языке программирования типа Си++.
# {{note|cons2}} О сути и смысле прототипирования читайте [[Словарик философствующего информатика#Прототипирование|соответствующую статью]] «[[Словарик философствующего информатика|Словарика философствующего информатика]]».
 
<!-- FIXME: [[Категория:Информатика в журнале «Потенциал»]] уже подразумевает [[Категория:Журнал «Потенциал»]] -->
[[Категория:{{Темы |Haskell (язык программирования) |Функциональное программирование]] |Информатика в журнале «Потенциал» |Журнал «Потенциал»}}
[[Категория:информатика в журнале «Потенциал»]]
[[Категория:Haskell (Язык программирования)]]
3894

правки