相关疑难解决方法(0)

了解与cons运算符的模式匹配

在"Programming F#"中,我遇到了像这样的模式匹配(我简化了一下):

let rec len list = 
  match list with
  | [] -> 0
  | [_] -> 1
  | head :: tail -> 1 + len tail;;
Run Code Online (Sandbox Code Playgroud)

实际上,我知道最后一个匹配识别列表的头部和尾部.从概念上讲,我不明白为什么它有效.据我所知,::是cons运算符,它在列表的头部位置附加一个值,但它并不像我在这里被用作运算符.我应该将其理解为列表的"特殊语法",其中::根据上下文被解释为运算符或"匹配模式"吗?或者可以使用其他运算符为列表以外的类型扩展相同的想法?

f# pattern-matching cons

11
推荐指数
3
解决办法
2256
查看次数

标签 统计

cons ×1

f# ×1

pattern-matching ×1