什么是不带参数调用的函数?

Posted

技术标签:

【中文标题】什么是不带参数调用的函数?【英文标题】:What is a function that takes no arguments called? 【发布时间】:2011-08-13 22:56:16 【问题描述】:

有没有比“不带参数的函数”更简洁地描述不带参数的函数的术语? (与例如“高阶函数”的含义相同,即“将函数作为参数或返回函数的函数”)

我自然会想到“void”,但看到“void”也会想到副作用。我正在考虑的情况是在constantly的讨论中发现的那种情况:

What is this functional "pattern" called?

您可以创建一个不带参数、没有副作用但仍然可以做一些有趣的事情的闭包。

【问题讨论】:

【参考方案1】:

一个空函数,通常是:http://en.wikipedia.org/wiki/Arity

一个函数是否有副作用与它有多少参数是正交的,所以在一个没有函数有副作用的语言中,你不需要一个更具体的术语。在有副作用的语言中,我想你会称它为“无副作用”或“纯”空函数。

然后通过(例如)记忆化,一个函数在逻辑上可以是纯的,即使你知道在幕后,它确实有副作用。

【讨论】:

哈!就像我在这里得到答案时经常出现的情况一样,我现在感觉自己像个傻瓜。当然,我知道“一元”、“二元”等,但没有建立联系。在这种情况下,*** 比 Google(我确实开始使用)要好得多!【参考方案2】:

nullaryniladic 函数。

    

【讨论】:

【参考方案3】:

一个Thunk?

【讨论】:

谢谢。我不知道“thunk”是这个的另一个名字。但“nullary”是我一直在寻找的通用术语。 也就是说,我应该说我知道延迟计算方面的“thunk”,但不是“nullary”的同义词。

以上是关于什么是不带参数调用的函数?的主要内容,如果未能解决你的问题,请参考以下文章

调用不带括号的函数时如何传递参数[Javascript]

调用 UDF 时出现“此函数不带参数”错误

C#中的多线程问题,为啥带参数的方法不行,不带参数的可以?

如何在java中调用不带参数的PL/SQL函数

python——函数

JavaScript 中怎么不带括号的调用函数