什么是不带参数调用的函数?
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】:nullary 或 niladic 函数。
【讨论】:
【参考方案3】:一个Thunk?
【讨论】:
谢谢。我不知道“thunk”是这个的另一个名字。但“nullary”是我一直在寻找的通用术语。 也就是说,我应该说我知道延迟计算方面的“thunk”,但不是“nullary”的同义词。以上是关于什么是不带参数调用的函数?的主要内容,如果未能解决你的问题,请参考以下文章