-2

In Ullman's SML book:

Note that the way we express "list of length 1" as a pattern is to put square brackets around a single identifier, like [a]. Such a pattern can only match a list with a single element, and variable a acquires that element as its value.

Another way to express "list of length 1" is with the pattern a :: nil. Again, a acquires the lone element as its value.

In a :: nil, does a represents the head element of a list? Why does it represent a list of length 1?

Thanks.

Tim
  • 1
  • 141
  • 372
  • 590

1 Answers1

2

a is the head of the list and nil is the tail. nil is a list of length zero so a :: nil has length 1.

Lee
  • 142,018
  • 20
  • 234
  • 287