【问题标题】:Why does `a` in `a :: nil` represent a list of length 1?为什么`a :: nil`中的`a`代表长度为1的列表?
【发布时间】:2020-08-15 21:29:00
【问题描述】:

在 Ullman 的 SML 书中:

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

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

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

谢谢。

【问题讨论】:

    标签: list pattern-matching sml ml


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-02-13
      • 2017-03-04
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 2013-01-26
      相关资源
      最近更新 更多