En lógica , matemáticas y ciencias de la computación , aridad ( / ˈærɪt i / ) es el número deargumentosuoperandosque toma unafunción,operaciónorelación. En matemáticas, la aridad también puede llamarse rango,[1][2]pero esta palabra puede tener muchos otros significados. En lógica yfilosofía, la aridad también puede llamarseadicidadygrado.[3][4]Enlingüística, se suele denominarvalencia.[5]
En general, las funciones u operadores con una aridad dada siguen las convenciones de nomenclatura de los sistemas de numeración basados en n , como el binario y el hexadecimal . Un prefijo latino se combina con el sufijo -ario. Por ejemplo:
Una constante puede tratarse como la salida de una operación de aridad 0, llamada operación nula .
Además, fuera de la programación funcional , una función sin argumentos puede tener sentido y no necesariamente ser constante (debido a efectos secundarios ). Dichas funciones pueden tener alguna entrada oculta , como variables globales o el estado completo del sistema (tiempo, memoria libre, etc.).
Ejemplos de operadores unarios en matemáticas y en programación incluyen los operadores unarios menos y más, los operadores de incremento y decremento en lenguajes de estilo C (no en lenguajes lógicos), y el sucesor , factorial , recíproco , suelo , techo , parte fraccionaria , signo , valor absoluto , raíz cuadrada (la raíz cuadrada principal), conjugado complejo (unario de "un" número complejo , que sin embargo tiene dos partes en un nivel inferior de abstracción) y funciones de norma en matemáticas. En programación, el complemento a dos , la referencia de dirección y los operadores lógicos NOT son ejemplos de operadores unarios.
Todas las funciones en el cálculo lambda y en algunos lenguajes de programación funcional (especialmente aquellos que descienden de ML ) son técnicamente unarias, pero véase n-ario a continuación.
Según Quine , los distributivos latinos son singuli , bini , terni , etc., por lo que el término «singular» es el adjetivo correcto, en lugar de «unario». [6] Abraham Robinson sigue el uso de Quine. [7]
En filosofía, el adjetivo monádico se utiliza a veces para describir una relación de un lugar, como "tiene forma cuadrada", en oposición a una relación de dos lugares, como "es la hermana de".
La mayoría de los operadores que se encuentran en programación y matemáticas son de forma binaria . Tanto para programación como para matemáticas, estos incluyen el operador de multiplicación , el operador de base, el operador de exponenciación a menudo omitido , el operador de logaritmo , el operador de suma y el operador de división . Los predicados lógicos como OR , XOR , AND e IMP se utilizan normalmente como operadores binarios con dos operandos distintos. En las arquitecturas CISC , es común tener dos operandos de origen (y almacenar el resultado en uno de ellos).
El lenguaje de programación informática C y sus diversos descendientes (incluidos C++ , C# , Java , Julia , Perl y otros) proporcionan el operador condicional ternario ?:
. Se evalúa el primer operando (la condición) y, si es verdadero, el resultado de toda la expresión es el valor del segundo operando; de lo contrario, es el valor del tercer operando.
El lenguaje Python tiene una expresión condicional ternaria, . En Elixir el equivalente sería, .x if C else y
if(C, do: x, else: y)
El lenguaje Forth también contiene un operador ternario, */
, que multiplica los dos primeros números (de una celda) y los divide por el tercero, y el resultado intermedio es un número de celda doble. Esto se utiliza cuando el resultado intermedio desbordaría una celda individual.
La calculadora dc de Unix tiene varios operadores ternarios, como |
, que extraerá tres valores de la pila y calculará de manera eficiente con precisión arbitraria .
Muchas instrucciones del lenguaje ensamblador ( RISC ) son ternarias (a diferencia de los únicos dos operandos especificados en CISC); o superiores, como , que cargará ( MOV ) en el registro AX el contenido de una ubicación de memoria calculada que es la suma (paréntesis) de los registros BX y CX .MOV %AX, (%BX, %CX)
La media aritmética de n números reales es una función n -aria:
De manera similar, la media geométrica de n números reales positivos es una función n -aria: Nótese que un logaritmo de la media geométrica es la media aritmética de los logaritmos de sus n argumentos.
Desde un punto de vista matemático, una función de n argumentos siempre puede considerarse como una función de un único argumento que es un elemento de algún espacio de producto . Sin embargo, puede ser conveniente que la notación considere funciones n -arias, como por ejemplo las funciones multilineales (que no son funciones lineales en el espacio de producto, si n ≠ 1 ).
Lo mismo es válido para los lenguajes de programación, donde las funciones que toman varios argumentos siempre se pueden definir como funciones que toman un único argumento de algún tipo compuesto , como una tupla , o en lenguajes con funciones de orden superior , mediante currying .
En informática, una función que acepta un número variable de argumentos se denomina variádica . En lógica y filosofía, los predicados o relaciones que aceptan un número variable de argumentos se denominan multigrados , anádicos o poliádicos variables. [8]
Los nombres latinos se usan comúnmente para aridades específicas, principalmente basadas en números distributivos latinos que significan "en grupo de n ", aunque algunos se basan en números cardinales latinos o números ordinales . Por ejemplo, 1-ario se basa en el cardinal unus , en lugar del distributivo singulī que daría como resultado singulary .
n - ario significa tener n operandos (o parámetros), pero a menudo se utiliza como sinónimo de "poliádico".
Estas palabras se utilizan a menudo para describir cualquier cosa relacionada con ese número (por ejemplo, el ajedrez indenario es una variante del ajedrez con un tablero de 11×11, o la Petición Milenaria de 1603).
La aridad de una relación (o predicado ) es la dimensión del dominio en el producto cartesiano correspondiente . (Por lo tanto, una función de aridad n tiene aridad n +1 considerada como una relación).
En programación informática , suele haber una distinción sintáctica entre operadores y funciones ; los operadores sintácticos suelen tener aridad 1, 2 o 3 (el operador ternario ?: también es común). Las funciones varían ampliamente en el número de argumentos, aunque un gran número puede resultar difícil de manejar. Algunos lenguajes de programación también ofrecen soporte para funciones variádicas , es decir, funciones que aceptan sintácticamente un número variable de argumentos.
Una monografía disponible gratuitamente en línea: