Firma de tipo


En informática , una firma de tipo o una anotación de tipo define las entradas y salidas de una función, subrutina o método . Una firma de tipo incluye el número, los tipos y el orden de los argumentos contenidos por una función. Una firma de tipo se usa típicamente durante la resolución de sobrecarga para elegir la definición correcta de una función que se llamará entre muchos formularios sobrecargados.

En C y C ++ , la firma de tipo se declara mediante lo que comúnmente se conoce como prototipo de función . En C / C ++, una declaración de función refleja su uso ; por ejemplo, un puntero de función con la firma se llamaría como:(int)(char, double)

Tenga en cuenta que el tipo de resultado se puede considerar como todo lo que se encuentra más allá del primer argumento proporcionado. Esto es una consecuencia del currying , que es posible gracias al soporte de Haskell para funciones de primera clase ; esta función requiere dos entradas donde se proporciona un argumento y la función es "currizada" para producir una función para el argumento no proporcionado. Por lo tanto , llamar a where produce una nueva función que se puede llamar para producir .f xf :: a -> b -> cf2 :: b -> cf2 bc

Las especificaciones de tipo real pueden consistir en un tipo real, como Integer, o una variable de tipo general que se utiliza en funciones polimórficas paramétricas , como , o , o . Entonces podemos escribir algo como:abanyTypefunctionName :: a -> a -> ... -> a

Dado que Haskell admite funciones de orden superior , las funciones se pueden pasar como argumentos. Esto está escrito como:functionName :: (a -> a) -> a

En la máquina virtual Java , las firmas de tipo internas se utilizan para identificar métodos y clases en el nivel del código de la máquina virtual.