List 为什么`a::nil`中的`a`表示长度为1的列表?

List 为什么`a::nil`中的`a`表示长度为1的列表?,list,pattern-matching,sml,ml,List,Pattern Matching,Sml,Ml,在Ullman的SML书中: 请注意,我们将“长度列表1”表示为模式的方式是 单个标识符周围的方括号,如[a]。 这样的模式只能将列表与单个元素和变量进行匹配 获取该元素作为其值 表示“长度1的列表”的另一种方法是使用模式a::nil。 同样,a获取单独的元素作为其值 在a::nil中,a是否表示列表的头元素?为什么它代表长度为1的列表 谢谢。a是列表的头,而nil是列表的尾nil是长度为零的列表,因此a::nil的长度为1

在Ullman的SML书中:

请注意,我们将“长度列表1”表示为模式的方式是 单个标识符周围的方括号,如
[a]
。 这样的模式只能将列表与单个元素和变量进行匹配 获取该元素作为其值

表示“长度1的列表”的另一种方法是使用模式
a::nil
。 同样,
a
获取单独的元素作为其值

a::nil
中,
a
是否表示列表的头元素?为什么它代表长度为1的列表


谢谢。

a
是列表的头,而
nil
是列表的尾
nil
是长度为零的列表,因此
a::nil
的长度为1