10

Есть ли термин, описывающий функцию, которая не принимает аргументов более кратко, чем «функция, которая не принимает аргументов»? (Точно так же, как «функция более высокого порядка» означает «функция, которая принимает функции в качестве аргументов или возвращает функцию»)Что такое функция, которая не принимает аргументов?

Я, естественно, думаю о «пустоте», но я также думаю о побочных эффектах, когда вижу «пустоту» ». Ситуация, которую я имею в виду это своего рода нашли в этом обсуждении constantly:

What is this functional "pattern" called?

, где вы можете создать замыкание, которое не принимает никаких аргументов, не имеет никаких побочных эффектов, но все же делает что-то интересное.

ответ

16

нульарной функция, как правило: http://en.wikipedia.org/wiki/Arity

ли функция имеет побочные эффекты ортогональна, сколько аргументов он имеет, поэтому в языке, где ни одна функция никогда не имеет побочных эффектов, не нужен более конкретный термин. На языках с побочными эффектами, я полагаю, вы назвали бы это «побочным эффектом» или «чистой» нулевой функцией.

И затем, например, с помощью memoization, функция может быть логически чистой, даже если вы знаете, что за кулисами она имеет побочные эффекты.

+0

Хах! Как часто бывает, когда я получаю ответ здесь, теперь я чувствую себя полным дурком. Я знаю «унарный», «двоичный» и т. Д., Но не установил связь. stackoverflow намного лучше, чем Google (с которого я действительно начинал) в ситуациях, подобных этому! – jtolle

3

A nullary или niladic функция.

       

+0

Спасибо. Я никогда не слышал термин «ниладический». – jtolle

4
+0

Спасибо. Я не знал «thunk» как другое имя для этого. Но «нулевой» - это общий термин, который я искал. – jtolle

+0

То есть, я должен сказать, что я знал «thunk» с точки зрения отложенных вычислений, но не как синоним «nullary». – jtolle