Syntax F#语句的语义

Syntax F#语句的语义,syntax,f#,function,semantics,currying,Syntax,F#,Function,Semantics,Currying,有人能给我描述一下这个F#表达式吗 val augment: GameGrid -> points -> unit val关键字是什么意思 通常type->type指示返回指定类型的函数是真的吗?因此,type->type->type是否表示返回指定类型的函数?(“val”位不是一个表达式;我认为它可以出现在三种不同的上下文中: FSI(F#interactive REPL)的输出,描述绑定的推断类型 在签名(.fsi)文件中,描述let绑定模块值的类型 在结构/类定义(“显式”

有人能给我描述一下这个F#表达式吗

val augment: GameGrid -> points -> unit
val
关键字是什么意思

通常
type->type
指示返回指定类型的函数是真的吗?因此,
type->type->type
是否表示返回指定类型的函数?

(“val”位不是一个表达式;我认为它可以出现在三种不同的上下文中:

  • FSI(F#interactive REPL)的输出,描述绑定的推断类型
  • 在签名(.fsi)文件中,描述let绑定模块值的类型
  • 在结构/类定义(“显式”语法)中,定义实例变量
这些都不是技术上的表达上下文。)

至于类型,确实如此

A1 -> A2 -> R
表示接受A1的函数,返回接受A2的函数,返回R的函数。参数为curried,您可以阅读

它更详细地描述了咖喱和部分应用。

(“val”位不是一个表达式;我认为它可以出现在三种不同的上下文中:

  • FSI(F#interactive REPL)的输出,描述绑定的推断类型
  • 在签名(.fsi)文件中,描述let绑定模块值的类型
  • 在结构/类定义(“显式”语法)中,定义实例变量
这些都不是技术上的表达上下文。)

至于类型,确实如此

A1 -> A2 -> R
表示接受A1的函数,返回接受A2的函数,返回R的函数。参数为curried,您可以阅读


它更详细地描述了咖喱和部分应用。

您是如何获得此输出的?在FSI

Val只是表示一个值的定义

例如,如果你用C写了以下内容#

你可以用F写这个#

关于
type->type->type
:这是一个带有两个参数(type)的函数,返回'type'

例如

已获得签名
int->int->int


您关于返回函数的函数的想法实际上是正确的。在许多函数式语言中,这是一种非常有趣的技术,称为

您是如何获得此输出的?在FSI

Val只是表示一个值的定义

例如,如果你用C写了以下内容#

你可以用F写这个#

关于
type->type->type
:这是一个带有两个参数(type)的函数,返回'type'

例如

已获得签名
int->int->int


您关于返回函数的函数的想法实际上是正确的。在许多函数式语言中,这是一种非常有趣的技术,叫做

是的,它来自一个FSI文件。是的,它来自一个FSI文件。
val Foo : int -> unit
let plus a b = a + b