Abstraktní Wikipedie/příklady funkcí

From Meta, a Wikimedia project coordination wiki
This page is a translated version of the page Abstract Wikipedia/Early function examples and the translation is 100% complete.

Toto je seznam možných příkladů funkcí, které mohou, ale nemusí být vhodné pro wiki funkcí. Všimněte si, že konečnou autoritu o tom, co je a co není vhodné, bude mít komunita a tento seznam příkladů nemá za cíl o tom rozhodovat. Rovněž názvy ani signatury funkcí nejsou míněny jako dokonalé, ale skutečně jen jako náčrty.

Seznam navrhovaných funkcí

  • 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


Jak číst příklady

Výše uvedená syntaxe je pouze možnou kompaktní reprezentací. Skutečné uživatelské rozhraní wiki funkcí ji může zobrazovat různými způsoby (příklady viz první mockupy).

  • Nejprve je uvedeno možné anglické označení funkce, které je zobrazeno tučným písmem (může být později přeloženo ve wiki funkcí nebo ve Wikidatech a opatrně použito místo interního a jednoznačného ZID — které za běhu používá vyhodnocovací engine nebo pro skládání jiných funkcí — je třeba mít na paměti, že tyto jednoduché názvy mohou být nejednoznačné a mohou vyžadovat rozšiřování nebo mohou být různě aliasovány pro použití v různých implementačních jazycích), za nímž následuje dvojtečka :.
    • Pokud je za názvem funkce před dvojtečkou dvojice kulatých závorek (), znamená to, že samotná funkce je obecná a je založena na vstupní proměnné typu T.
  • Za ním následuje seznam typů vstupních argumentů funkce oddělených čárkami , a dále následuje šipka a typ výstupní hodnoty.
    • Všimněte si, že typy jsou zatím specifikovány svým popisným názvem v angličtině, ale budou také popsány jako ZObjects s přeložitelnými popisky a vnitřním jednoznačným ZID.
    • Pokud má typ kulaté závorky (), jedná se o typovou funkci, která vrací typ dále specifikovaný argumentem v závorce.
    • Možné chyby (nebo výjimky) nejsou prozatím uvedeny, ale mohou být specifikovány později s vlastní sémantikou (případně pomocí obecného typového konstruktoru popisujícího variantní typy pro výsledek).
  • Omezení pro hodnoty daných vstupních nebo výstupních typů nejsou zadána. Mohou být popsány později, například vytvořením podtypů/odvozených typů:
    • typ integer může být specifikován jako podtyp obecnějšího číselného typu;
    • typ byte může být určeným podtypem typu integer;
    • typ noun může být specifikovaným podtypem typu řetězec nebo pravděpodobněji jednojazyčným textovým typem, který nese dodatečnou vlastnost kód jazyka a je specifikován obecným typem konstruktoru (druh funkce, jejímiž vstupními argumenty mohou být jiné typy nebo hodnoty);
    • typ quantity může být specifikován jako generický typový konstruktor, který přijímá vstupní argument jako hodnotu nebo typ, specifikující druh měření nebo fyzikální rozměr, nebo další vstupní argumenty specifikující projekci (geometrické transformace a osy) a referenční objekt, odděleně od specifikace měrné jednotky (to může být užitečné zejména pro zeměpisné souřadnice, teploty nebo kvalifikace pro určitou jurisdikci): mohou být definovány jako odvozené typy pomocí vlastního generického typového konstruktoru;
    • typy location a person mohou být také specifikovány jako obecný typový konstruktor, který přijímá jeden nebo několik vstupních argumentů pro specifikaci mnoha povinných nebo nepovinných vlastností, případně odkazem na jiné objekty s jejich vlastními vhodnými typy.
  • Prozatím nic neukazuje, jaké jsou výchozí hodnoty vstupních argumentů (pokud je některý z nich vynechán), zda jsou návratové hodnoty vázány na vstupní argumenty nebo zda jsou vstupní argumenty při referenci modifikovány (prozatím budeme předpokládat čistě funkcionální model, kde jsou všechny vstupy a výstupy na sobě nezávislé).
  • Textová reprezentace konstantních hodnot může také záviset na specifikaci funkcí pro konverzi typů (včetně parserů nebo rendererů pro daný jazyk zadaných jako vstupní argument nebo jako součást běhového prostředí předávaného explicitně jako další argument nebo implicitně s nějakým výchozím nastavením).