我刚刚注意到 F# 允许我将 let 绑定与文字和其他模式一起使用,如下所示:
let fib 0 = 1
let exists item [] = false
let car (hd :: tl) = hd
let cdr (hd :: tl) = tl
F# 正确地将这些函数解释为一种模式匹配,因为给了我以下警告:
警告 1 此表达式的模式匹配不完整。例如,值 '1' 将不匹配
警告 2 此表达式的模式匹配不完整。例如,值“[_]”将不匹配
等等
这些函数按预期工作,但我想以这种样式定义一个具有完整模式匹配的函数,但是我在 F# 手册中找不到关于这种替代模式匹配语法的任何信息。
我知道我可以使用let whatever = function ...
并let whatever x = match x with ...
获得我想要的结果,但是我刚刚发现了另一种模式匹配语法,如果我不知道如何使用它,它会一直困扰着我。
如何使用上面显示的替代模式匹配语法编写函数?