Хаскель: В чем смысл: - PullRequest
       58

Хаскель: В чем смысл:

0 голосов
/ 12 мая 2018

Символ, объединенный (:.) С минусами, следующие за точкой.

Взятый отсюда:

-- The custom list type
data List t =
  Nil
  | t :. List t
  deriving (Eq, Ord)

-- Right-associative
infixr 5 :.

Взятый отсюда: https://github.com/tonymorris/fp-course

1 Ответ

0 голосов
/ 12 мая 2018

Короче говоря : код создает альтернативную версию списка, а (:.) является одним из двух конструкторов данных .

Ну, это конструктор данных типа данных List t.Например, стандартный список [a] имеет два конструктора данных [] и (:), здесь код вводит новый конструктор данных (:.), но он действует точно так же, как «минусы» стандартного списка (:).

Таким образом, код определяет его как:

data List t = Nil | (:.) t (List t) deriving (Eq, Ord)

и, как и любой конструктор данных, мы можем выполнить сопоставление с образцом, создать новые списки и т. Д.

...