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

Содержимое удалено Содержимое добавлено
Уточнение ключа сортировки
Строка 10:
Символы чаще всего являются идентификаторами — именами констант, переменных, функций. Значениями же констант, переменных и функций являются типизированные последовательности знаков. Пример: значением числовой константы не может быть строка из букв. В функциональных языках есть понятие '''атом'''. В реализациях атомами называются символы и чи́сла, причём чи́сла могут быть трёх видов: целые, с фиксированной и с плавающей точкой.
 
[[w:Список (структура данных)|Список]] — ещё одно понятие функционального программирования. В абстрактной математической записи использовались квадратные скобки <code>[]</code>, которые также используются в Хаскеле. Но в Лиспе используются обычные, круглые скобки <code>()</code>. Элементы списка в Лиспе разделяются [[w:пробел|пробелами]], что не очень наглядно, поэтому в Хаскеле ввели запятую для разделения. Список <code>[a, b, c]</code> будет правильно записан в синтаксисе Хаскела, а в нотацию Лиспа его необходимо перевести как <code>(a b c)</code>. Создатели Лиспа пошли ещё дальше в своей изощрённости: допускается использовать точечную запись для организации пары, поэтому приведённый выше список можно записать как <code>(a.(b.(c.NIL)))</code> (В Хаскел это будет выглядеть как <code>a:b:c:[]</code>).
 
Списочные структуры в Лиспе и Хаскеле описываются в соответствии с нотацией: заключением одного списка в другой. При этом в нотации Лиспа сделано послабление, так как перед скобкой внутреннего списка можно не ставить пробел.