gpt4 book ai didi

f# - 如何在 f# 中解释此部分函数语法?

转载 作者:行者123 更新时间:2023-12-05 01:28:18 24 4
gpt4 key购买 nike

我正在阅读 f# 代码,但我对语法感到困惑。一个Parser类型介绍如下:

type Parser<'r> = Parser of (char list -> ('r*char list) list)

这被解释器评估为:

type Parser<'r> = | Parser of (char list -> ('r * char list) list)

这对我来说很有意义。然后,引入了一行新的代码:'A parser function also needs to be applied so we define a partial function for that:',以及下面的代码:

let parse (Parser p) = p

解释器的输出是:

Parser<'a> -> (char list -> ('a * char list) list)

我很惊讶这甚至是有效的语法。它是什么以及为什么需要它?

非常感谢

最佳答案

总的来说

let fpattern=body

相当于

令 f = 函数
|模式 ->主体

或者,更详细地说,

令 f x =
将 x 与
匹配 |模式->正文

这可以让您避免引入一个新的标识符,该标识符会立即被解构,然后再也不会被使用。

在这个特定的例子中,这意味着 parse 等同于:

let parse x = 
match x with
| Parser p -> p

由于 Parser 类型中只有一个 case,因此这种解构总是会成功。

关于f# - 如何在 f# 中解释此部分函数语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9081297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com