.net - 使用空参数调用函数的术语

标签 .net f# functional-programming terminology language-design

在函数式编程中,调用不接受参数的函数的正确名称是什么?例如:

// 2 types of execute functions
type Function =
    | UnitFunction of (unit -> unit)
    | OperandFunction of (unit16 -> unit)

let nop () =
    ()

let shiftRegisterA operand =
    registers.A <- registers.A <<< operand

可以nop被称为 UnitFunction , 和 shiftRegisterA被称为 OperandFunction ?

最佳答案

您在这里所指的通常称为 arity的一个功能。因此,没有参数的函数将被称为空函数和具有单个参数的函数 - 一元函数。

虽然您仍然可以在 F# 函数的上下文中使用此术语并获得普遍理解,但这并不完全准确。 F# 函数始终采用单个参数并返回单个值,因为默认情况下函数是柯里化(Currying)的。

在您的情况下,nop有类型 unit -> unit .这意味着它需要一个 unit 类型的参数。 (类型的唯一 () 值),并返回类型为 unit 的结果.尽管如此,这仍然使它成为一元函数。

关于.net - 使用空参数调用函数的术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43297393/

相关文章:

haskell - 为参数类型实现 Functor

.net - Azure Active Directory 登录连接关闭异常

c# - 为什么 Environment.Exit() 不再终止程序?

f# - 函数签名

recursion - 递归可区分联合和映射

Typescript:推断函数参数

haskell - 努力实现 Monad 函数

c# - 泛型方法的调用是不明确的错误

.net - Windows Azure : Can't see trace listener's output in diagnostics logs

f# - 如何在 F# 中使用命名参数调用函数