Абстрактна Вікіпедія/Ранні приклади функцій
Appearance
Це список можливих прикладів функцій, які можуть підходити або не підходять для вікі функцій. Зауважте, що вирішувати, що підходить, а що не підходить, буде спільнота, і цей список прикладів не призначений для прийняття рішення щодо цього. Крім того, ані назви, ані підписи функцій не повинні бути ідеальними, а насправді є лише ескізами.
Список запропонованих функцій
- 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
Як читати приклади
Синтаксис, використаний вище, є лише можливим компактним представленням. Фактичний інтерфейс користувача вікі-функцій може показувати це по-різному (див. приклади в ранніх макетах).
- Спочатку йде можлива англійська назва функції, виділена жирним шрифтом (її можна перекладати пізніше у вікі функцій або Вікіданих, і обережно використовувати замість внутрішнього та однозначного ZID — який використовується під час виконання механізмом оцінки або для композиції інших функцій — маючи на увазі, що ці прості назви можуть бути неоднозначними та можуть вимагати визначення області видимості або можуть мати різні псевдоніми для використання в різних мовах реалізації), а потім двокрапка :.
- Коли ім'я функції має пару круглих дужок (), що йдуть за нею перед двокрапкою, це означає, що сама функція є узагальненою та базується на змінному типі вхідних даних T.
- Далі йде список типів вхідних аргументів функції, розділених комами ,, а потім стрілка ➝ та тип вихідного значення.
- Зверніть увагу, що типи визначаються їх описовою назвою в Поки що англійською, але вони також будуть описуватися як ZObjects з перекладними мітками та внутрішнім однозначним ZID.
- Коли тип має круглі дужки (), це функція типу, яка повертає тип, додатково визначений аргументом у дужках.
- Можливі помилки (або винятки) наразі не перелічені, але можуть бути вказані пізніше з власною семантикою (можливо, за допомогою універсального конструктора типів, що описує варіантні типи для результату).
- Обмеження для значень заданих вхідних або вихідних типів не вказані. Їх можна описати пізніше, створюючи підтипи/похідні типи, наприклад:
- цілочисельний тип може бути вказаним як підтип більш загального числового типу;
- байтовий тип може бути вказаним підтипом цілочисельного типу;
- іменний тип може бути вказаним підтипом рядкового типу, або, що більш імовірно, одномовного текстового типу, що має додаткову властивість мовного коду, та вказаний універсальним конструктором типу (вид функції, вхідні аргументи якої можуть бути іншими типами або значеннями);
- кількісний тип може бути вказаний як універсальний конструктор типу, що приймає вхідний аргумент як значення або тип, що вказує тип вимірювання або фізичний розмір, або інші вхідні аргументи, що вказують проєкцію (геометричні перетворення та вісь) та об'єкт посилання, окремо від специфікації одиниці вимірювання (це може бути корисним, зокрема, для географічних координат, температур або кваліфікацій для певної юрисдикції): їх можна визначити як похідні типи, використовуючи власний універсальний конструктор типу;
- Типи розташування та особи також можуть бути вказані як універсальний конструктор типу, що приймає один або кілька вхідних аргументів для визначення багатьох обов'язкових або необов'язкових властивостей, можливо, шляхом посилання на інші об'єкти з їхніми відповідними типами.
- Наразі ніщо не вказує на значення за замовчуванням для вхідних аргументів (коли один з них пропущено), чи повернені значення пов'язані з вхідними аргументами, чи вхідні аргументи змінюються під час посилання на них (наразі ми припустимо чисто функціональну модель, де всі входи та виходи незалежні один від одного).
- Крім того, текстове представлення константних значень може залежати від специфікації функцій перетворення типів (включаючи парсери або рендерери для заданої мови, зазначеної як вхідний аргумент або як частина середовища виконання, що передається явно як додатковий аргумент, або неявно з деяким значенням за замовчуванням).