Почему `a` в` a :: nil` представляет список длины 1? - PullRequest
0 голосов
/ 01 мая 2020

В книге Уллмана по SML:

Обратите внимание, что способ, которым мы express "список длины 1" как шаблон, заключаем в квадратные скобки вокруг одного идентификатора, например [a]. Такой шаблон может соответствовать списку только с одним элементом, и переменная a получает этот элемент в качестве значения.

Другой способ express «список длины 1» - с шаблоном a :: nil. Снова, a получает одиночный элемент как его значение.

В a :: nil, представляет ли a элемент заголовка списка? Почему он представляет список длиной 1?

Спасибо.

1 Ответ

1 голос
/ 01 мая 2020

a - начало списка, а nil - хвост. nil - это список нулевой длины, поэтому a :: nil имеет длину 1.

...