用空参数调用函数的术语

MiP*_*MiP 3 .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
Run Code Online (Sandbox Code Playgroud)

可以nop称为a UnitFunction,shiftRegisterA被称为OperandFunction

scr*_*wtp 9

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

虽然你仍然可以在F#函数的上下文中使用这个术语并且被普遍理解,但这并不完全准确.F#函数总是采用单个参数并返回单个值,因为默认情况下函数是curry.

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