Wikipedia abstracta/Ejemplos preliminares de funciones

This page is a translated version of the page Abstract Wikipedia/Early function examples and the translation is 100% complete.

Esta es una lista de posibles ejemplos de funciones que podrían o no ser apropiadas para la wiki de funciones. Tenga en cuenta que la autoridad final que decidirá lo que es apropiado o no será la comunidad. Asimismo, ni los nombres ni las firmas de las funciones están diseñadas para ser perfectas, estas son solamente bocetos.

Lista de funciones propuestas

  • multiply : integer, integer ➝ integer
  • factorize : positive integer ➝ list(positive integer)
  • percent change : quantity, quantity ➝ percentage
  • interest : quantity(currency), timespan, percentage ➝ quantity
  • payment per period : quantity(currency), timespan, percentage, timespan ➝ quantity
  • and : boolean, boolean ➝ boolean
  • any : list(boolean) ➝ boolean
  • and : kleenean, kleenean ➝ kleenean
  • length : string ➝ integer
  • type of : any ➝ type
  • format : integer, style ➝ string
  • reverse : string ➝ string
  • rot13 : string ➝ string
  • hash sha256 : string ➝ sha256
  • validate hash : string, sha256 ➝ boolean
  • validate check digit : isbn13 ➝ boolean
  • capitalize : string ➝ string
  • letter histogram : string ➝ list(pair(character, positive integer))
  • head(T) : list(T) ➝ T
  • filter(T) : list(T), function(T ➝ boolean) ➝ list(T)
  • number of arguments : function(any ➝ any) ➝ integer
  • is empty(T) : list(T) ➝ boolean
  • convert : julian calendar date ➝ gregorian calendar date
  • add : julian calendar date, timespan ➝ julian calendar date
  • day of week : gregorian calendar date ➝ weekday
  • convert(T) : quantity(T), unit(T) ➝ quantity(T)
  • larger(T) : quantity(T), quantity(T) ➝ kleenean
  • distance : geocoordinate, geocoordinate ➝ quantity(length)
  • distance : city, city ➝ quantity(length)
  • distance : planet, planet, gregorian calendar date ➝ quantity(length)
  • size : geoshape ➝ quantity(area)
  • volume of torus : quantity(length), quantity(length) ➝ quantity(volume)
  • age at birth of first known child : person ➝ timespan
  • filter dishes by allergen : list(dish), allergen ➝ list(dish)
  • transpose : melody, key ➝ melody
  • head of state at birth : person ➝ person
  • filter by tomorrow’s heights : list(location), quantity(temperature) ➝ list(location)
  • most specific common taxon : taxon, taxon ➝ taxon
  • lives in : taxon, location ➝ kleenean
  • lived contemporary : taxon, taxon ➝ kleenean
  • lived contemporary : person, person ➝ kleenean
  • sum of populations in counties : state ➝ quantity
  • pie chart : list(pair(label, integer)), width ➝ image
  • answer to everything : nothing ➝ integer
  • dominant color : image ➝ rgb color
  • does Wikipedia link : qid, qid, language code ➝ boolean
  • height : image ➝ integer
  • resize : image, integer, integer ➝ image
  • mask filter : image, bitmask ➝ image
  • demonym : location ➝ noun
  • plural : English noun ➝ string
  • plural : German noun, German case ➝ string
  • make clause : noun phrase, verb phrase, gregorian calendar date ➝ clause
  • render : clause, language ➝ string


¿Cómo leer los ejemplos?

La sintaxis usada a continuación es solamente una posible representación compacta. La interfaz de usuario que realmente será usada en la wiki de funciones podría variar de diferentes formas (véanse aquí algunas Maquetas preliminares).

  • Al principio viene una etiqueta preliminar en inglés para la función, mostrada con caracteres en negrita (puede ser traducido más adelante en la wiki de funciones o en Wikidata, y usarse con precaución en lugar del ID Z & mdash interno e inequívoco; que se usa en tiempo de ejecución por el motor evaluador o para componer otras funciones & mdash; teniendo en cuenta que estos nombres simples pueden ser ambiguos y podrían requerir una mejora o podrían tener un alias diferente para su uso en diferentes lenguajes de implementación), seguidos de dos puntos :.
    • Cuándo el nombre de la función tiene un par de paréntesis redondos () seguido antes de dos puntos, significa que la función en sí es genérica y se basa en un tipo entrada variable T.
  • Luego le sigue una lista de los tipos de argumentos de entrada de la función, separados por comas , y luego seguidos por una flecha y el tipo del valor de salida.
    • Tenga en cuenta que por ahora los tipos se especifican por su nombre descriptivo en inglés, pero estos también se describirán como Objetos Z, con etiquetas traducibles y un ID Z interno e inequívoco.
    • Cuando un tipo tiene paréntesis (), es un tipo de función que devuelve un tipo más especificado por el argumento entre paréntesis.
    • Los posibles errores (o excepciones) no se enumeran por ahora, pero se pueden especificar más adelante con su propia semántica (posiblemente mediante el uso de un constructor de tipos genéricos que describa los tipos variantes para el resultado).
  • No se especifican las restricciones para los valores de los tipos de entrada o salida dados. Pueden describirse más adelante creando subtipos/tipos derivados, por ejemplo:
    • el tipo número entero (integer) puede especificarse como un subtipo de un tipo de número más general;
    • el tipo octeto (byte) puede ser un subtipo especificado del tipo entero;
    • el tipo sustantivo (noun) puede ser un subtipo especificado del tipo cadena, o más probablemente de un tipo de texto monolingüe que lleva una propiedad de código de lenguaje adicional, y especificado por un constructor de tipo genérico (un tipo de función cuyos argumentos de entrada pueden ser otros tipos o valores);
    • el tipo cantidad (quantity) puede especificarse como un constructor de tipo genérico tomando un argumento de entrada como un valor o tipo, especificando el tipo de medida o una dimensión física, u otros argumentos de entrada que especifiquen una proyección (transformaciones geométricas y del eje) y un objeto de referencia, por separado a partir de la especificación de la unidad de medida (esto podría ser útil en particular para coordenadas geográficas, temperaturas o calificaciones para una jurisdicción específica): pueden definirse como tipos derivados utilizando su propio constructor de tipos genéricos;
    • los tipos ubicación (location) y persona (person) también pueden especificarse como un constructor de tipo genérico tomando uno o varios argumentos de entrada para especificar muchas propiedades obligatorias u opcionales, posiblemente haciendo referencia a otros objetos con sus propios tipos adecuados.
  • Por ahora, nada indica los valores predeterminados para los argumentos de entrada (cuando se omite uno de ellos), o si los valores de retorno están vinculados a los argumentos de entrada, o si los argumentos de entrada se modifican cuando se hace referencia a ellos (por ahora asumiremos un modelo funcional puro donde todas las entradas y salidas son independientes entre sí).
  • Además, la representación textual de valores constantes puede depender de la especificación de las funciones de conversión de tipos (incluidos analizadores o representadores gráficos para un lenguaje dado especificado como un argumento de entrada o como parte de un entorno de ejecución pasado explícitamente como un argumento adicional, o implícitamente con algunos por defecto).