Шаг 16.
Основы языка Haskell. Основные типы данных, операции, способы определения функций. Простейшие типы данных

    На этом шаге мы перечислим простейшие типы данных.

    В языках функционального программирования простейшим типом данных, на основе которых строятся все остальные, является атом.

    Первоначальное значение слова "атом" (от греч. "а" - не, "том" - часть) - это "тот, который не может быть дальше разделён".

    Фактически атом - это слово в некотором алфавите.

    Приведём  простейшие (базовые) типы данных языка Haskell:


Рис.1. Схема типов данных

    Формальное описание синтаксиса приведённых выше типов данных представим в форме Бэкуса-Наура.

    Наименование простейших типов данных должно начинаться с  прописной (заглавной)  латинской буквы.

    1. Integer - имя типа данных для представления целых чисел с любым (более точно, потенциально бесконечным) количеством значащих цифр ("бесконечное" целое).

   <Целый_числовой_атом>::=(+¦-)<Десятичное_число>

                           ¦(+¦-)0o<Восьмеричное_число>

                           ¦(+¦-)0O<Восьмеричное_число>

                           ¦(+¦-)0x<Шестнадцатеричное_число>

                           ¦(+¦-)0X<Шестнадцатеричное_число>
                             Цифра⌋⌊Латинская буква

   <Цифра>                  ::=1¦2¦3¦4¦5¦6¦7¦8¦9¦0

   <Восьмеричная_цифра>     ::=1¦2¦3¦4¦5¦6¦7¦8¦0

   <Шестнадцатеричная_цифра>::=1¦2¦3¦4¦5¦6¦7¦8¦0¦A¦B¦C¦D¦E¦F¦a¦b¦c¦d¦e¦f

   <Десятичное_число>::=<Цифра>¦<Цифра><Десятичное_число>

   <Восьмеричное_число>::=<Восьмеричная_цифра>
                          ¦<Восьмеричная_цифра><Восьмеричное_число>

   <Шестнадцатеричное_число>::=<Шестнадцатеричная_цифра>
                ¦<Шестнадцатеричная_цифра><Шестнадцатеричное_число>

Примеры записи чисел типа Integer.
 0,  +123, -1111111, -0o5432, +0O345, +0x8A6F, -0X0BCD21E

    2.Int - имя типа данных для представления целых чисел, входящих в интервал [-2147483648,2147483648].


Примеры записи чисел типа Int.
  0, +123, -2147483648, 0o200000000, +0O345, +0x8000000, -0X07FDE
                    Цифра⌋⌊Латинская буква

    3. Float - имя типа данных для представления десятичных чисел с плавающей точкой.

    Значениями данных этого типа являются рациональные числа (!) из диапазона: 3.4*10-38 ÷ 3.4*1038.


Примеры записи чисел типа Float.
  +12.234, -0.987654, -5.34e-12, 2147483648.30e+10

    4. Double - имя типа данных для представления десятичных чисел с плавающей точкой двойной точности.

    Значениями данных этого типа являются рациональные числа (!) из диапазона: 1.7*10-308 ÷ 1.7*10308.

   <Числовой_атом_с_плавающей_точкой_двойной_точности>::=
           (+¦-)<Десятичное_число>.<Десятичное_число>[<Экспонента>]
           ¦(+¦-)<Десятичное_число><Экспонента>

   <Экспонента>::=(e¦E)[+¦-]<Десятичное_число>

Примеры записи чисел типа Double.
   +1234.2343, -0.9876543210, -5.34567e-12, 21474648.2147483630e+50

    5. Char - имя типа данных для представления литералов - объектов языка программирования, занимающих в памяти один байт (8 бит).

    На базе этого типа данных формируются символьные и строковые литералы.


Примеры записи символьных и строковых литералов.
  1. 'Q', 'u', '?', '0', ':', '\n'.
  2. "Q", "u", "?", "0", ":", "\n", "2", "8".

    6. Bool - имя типа данных для представления результата выполнения логических операций.

    Значениями данных этого типа являются два значения:

   True, False.

    7. String - имя типа данных для представления  строк - последовательности символов, начинающейся и заканчивающейся кавычками (").

    Строки отличаются от литералов тем, что могут содержать в качестве элементов разделители: пробелы, точки, запятые и т.д., но не должны содержать внутри себя символа "кавычка" (").


Замечание (для знатоков).    Остальные типы можно получить из перечисленных выше при помощи операций конструирования типов, которые называются конструкторами типов.

    На следующем шаге мы рассмотрим операции.




Предыдущий шаг Содержание Следующий шаг