function - OCaml 中的这两个函数定义有何不同?

标签 function coding-style syntax ocaml

我见过一些实现如下:

let rec fact =
  fun n ->
    if n <= 0 then 1 else n * fact (n - 1)

另一种实现是:

let rec fact n =
  if n <= 0 then 1 else n * fact (n - 1)

谁能告诉我这两种风格之间是否有任何区别?

最佳答案

这些定义是等价的。符号

let rec f a b c = <expr>

是一种方便的写作方式(语法糖):

let rec f = fun a b c -> <expr>

您可以在 section 6.7.1 of the OCaml manual 中找到它的描述,在本地定义标题下。

关于function - OCaml 中的这两个函数定义有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8697530/

相关文章:

excel - range.copy 目标 "A1"与 "Cells(1,1)"Excel/VBA

javascript - 我无法在函数中显示跨度 - javascript

C 语言内置函数

c - Vim:缩进/对齐问题

JavaScript 错误(未捕获的 SyntaxError : Unexpected end of input)

c - 数组声明方括号内的星号在C中是什么意思

c - C程序输出错误

javascript - 如何在不使用内联 CSS 的情况下使用彩色文本框(红色/绿色)进行 Javascript 表单验证?

c# - C# 中是否有命名参数的样式指南?

php - 在 Codeigniter View 中使用条件语句是否干净?