10

¿Hay un término que describa una función que no tome argumentos de forma más concisa que "función que no toma argumentos"? (De la misma manera que, por ejemplo, "función de orden superior" significa "función que toma funciones como argumentos o devuelve una función")¿Qué función no toma ningún argumento?

Naturalmente, pienso en "vacío", pero también pienso en los efectos secundarios cuando veo "vacío" ". La situación que estoy pensando es el tipo que se encuentra en esta discusión sobre constantly:

What is this functional "pattern" called?

donde se puede crear un cierre que no tiene argumentos, no tiene efectos secundarios, pero todavía hace algo interesante.

Respuesta

16

Una función nularia, por lo general: http://en.wikipedia.org/wiki/Arity

si una función tiene efectos secundarios es ortogonal a la cantidad de argumentos que tiene, por lo que en un lenguaje donde ninguna función cada vez tiene efectos secundarios, no es necesario un término más específico. En idiomas con efectos secundarios, supongo que lo llamarías una función nullary "libre de efectos secundarios" o "pura".

Y luego, con (por ejemplo) la memorización, una función puede ser lógicamente pura aunque usted sepa que detrás de las escenas, tiene efectos secundarios.

+0

Ja! Como suele ser el caso cuando recibo una respuesta aquí, ahora me siento como un idiota total. Por supuesto, sé "unario", "binario", etc., pero no hice la conexión. stackoverflow es mucho mejor que Google (¡con el que empecé) para situaciones como esta! – jtolle

3

A nullary o niládica función.

       

+0

Gracias también. Nunca escuché el término "niladic". – jtolle

4

Un Thunk?

+0

Gracias. No sabía "thunk" como otro nombre para esto. Pero "nullary" es el término general que estaba buscando. – jtolle

+0

Es decir, debería decir que conocía "thunk" en términos de cómputo retrasado, pero no como sinónimo de "nullary". – jtolle

Cuestiones relacionadas