【发布时间】:2017-06-29 10:15:01
【问题描述】:
我是函数式编程的新手,我已经开始查看match 语句的文档,在示例中我遇到了gitpages 并剪切并粘贴到下面的问题中:
let rec fib n =
match n with
| 0 -> 0
| 1 -> 1
| _ -> fib (n - 1) + fib (n - 2)
我知道let 用于静态绑定,在这种情况下用于一个名为 fib 的递归函数,它接受一个参数 n。它尝试将 n 与 3 个案例匹配。如果它是 0、1 或其他任何值。
我不明白| 符号在这种情况下被称为什么或为什么使用它?我搜索的与 f-sharp 管道有关的任何内容都会将我带到|>,它是 f-sharp 中的管道字符。
在这种情况下,| 是做什么用的?它是必需的还是可选的?什么时候应该和不应该使用|?
【问题讨论】:
-
谢谢,总结一下我学到的
|被称为香蕉夹,它所属的语句或函数称为主动识别器,这意味着在每个语句上面的函数中是一个主动模式,函数是一个主动识别器。这是正确的@flaZer 吗? -
根据链接,您好像少了一块。 “match n with”中的“n”似乎是您在代码示例中未提供的函数......所以在上面的示例中也似乎是“|”引用看起来像一个“switch”语句,基于输出函数“n”。
-
但我只是根据我找到的链接猜测 - 我不知道 f#
-
基于链接,我认为我是对的,但我会保持打开状态,以便确保我以正确的方式处理此问题。如果在我的理解中存在知识差距,我希望将其关闭。
标签: f#