Wikipedia Abstrak/Contoh fungsi awal
Appearance
Wikipedia abstrak |
---|
(Pembicaraan) |
Umum |
Rencana pengembangan |
|
Catatan, draf, diskusi |
|
Contoh & maket |
Alat data |
Historis |
Ini adalah daftar contoh yang mungkin untuk fungsi-fungsi yang mungkin cocok untuk wiki fungsi. Perhatikan bahwa keputusan mutlak mengenai apa yang cocok dipegang oleh komunitas, dan daftar contoh ini tidak dimaksudkan untuk membuat keputusan tersebut. Selain itu, baik nama maupun tanda tangan fungsi tidak dimaksudkan agar sempurna, melainkan hanyalah sketsa.
Daftar fungsi yang diusulkan
- 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
Cara membaca contoh
Sintaksis yang digunakan di atas hanyalah sebuah kemungkinan representasi yang padat. Antarmuka pengguna yang sebenarnya dari wiki fungsi mungkin menampilkan ini dalam cara yang berbeda (lihat maket awal untuk contoh).
- Bagian pertama adalah label bahasa Inggris yang mungkin untuk fungsi, ditampilkan dengan karakter tebal (labelnya mungkin nanti dapat diterjemahkan di wiki fungsi atau Wikidata, dan sebaiknya digunakan bukannya ZID internal yang digunakan pada waktu dijalankan oleh mesin evaluator atau untuk menggabungkan fungsi lainnya, karena nama sederhana ini mungkin ambigu dan bisa jadi memerlukan pelingkupan atau dialiaskan berbeda untuk digunakan dalam bahasa implementasi yang berbeda), diikuti dengan sebuah tanda titik dua :.
- Ketika nama fungsi diikuti oleh tanda kurung () sebelum tanda titik dua, artinya fungsi tersebut bersifat generik dan berdasar pada tipe variabel masukan T.
- Bagian berikutnya adalah daftar tipe argumen masukan dari fungsi, dipisahkan oleh tanda koma , dan kemudian diikuti oleh tanda panah ➝ dan tipe nilai keluaran.
- Perhatikan bahwa tipe-tipe tersebut untuk saat ini disebutkan dalam nama deskriptif bahasa Inggris, tetapi merak juga akan disebutkan sebagai ZObject, dengan label yang dapat diterjemahkan dan ZID internal yang tidak ambigu.
- Ketika sebuah tipe memiliki tanda kurung, tipe tersebut merupakan tipe fungsi yang mengembalikan tipe yang ditetapkan oleh argumen di dalam tanda kurung.
- Galat (atau pengecualian) yang mungkin terjadi tidak didaftarkan untuk saat ini, tetapi mungkin nanti ditentukan dengan semantik mereka sendiri (kemungkinan dengan menggunakan konstruktor tipe generik yang menjelaskan tipe varian untuk hasil).
- Pewatas untuk nilai dari tipe masukan atau keluaran tidak ditetapkan. Mereka mungkin akan ditetapkan nanti dengan membuat subtipe/tipe turunan, contohnya:
- tipe integer dapat ditetapkan sebagai subtipe dari tipe bilangan yang lebih umum;
- tipe byte dapat ditetapkan sebagai subtipe dari tipe integer;
- tipe noun dapat ditetapkan sebagai subtipe dari tipe string, atau lebih mungkin lagi tipe teks monolingual yang mengandung sebuah atribut kode bahasa tambahan, dan ditetapkan oleh konstruktor tipe generik (sejenis fungsi yang argumen masukannya bisa jadi tipe atau nilai lainnya);
- tipe quantity dapat ditetapkan sebagai konstruktor tipe generik yang mengambil argumen masukan sebagai suatu nilai atau tipe, menetapkan suatu jenis pengukuran atau dimensi fisik, atau argumen masukan lainnya menetapkan suatu proyeksi (transformasi dan sumbu geometris) dan suatu objek rujukan, secara terpisah dari penetapan satuan pengukuran (ini bisa berguna khususnya untuk koordinat geografis, suhu, atau kualifikasi untuk yurisdiksi tertentu): mereka bisa ditetapkan sebagai tipe turunan menggunakan konstruktor tipe generik mereka sendiri;
- tipe location dan person dapat ditetapkan sebagai konstruktor tipe generik yang mengambil satu atau lebih argumen masukan untuk menetapkan banyak atribut wajib ataupun opsional, bisa jadi dengan mengacu kepada objek lain dengan tipe yang cocok mereka sendiri.
- Untuk saat ini, tidak ada yang menandakan nilai baku untuk argumen masukan (ketika salah satunya tidak diberikan), atau apakah nilai keluarannya terikat dengan argumen masukan, atau apakah argumen masukan diubah apabila mereka merupakan referensi (untuk saat ini kita akan mengasumsikan sebuah model fungsional murni di mana semua masukan dan keluaran tidak bergantung pada satu sama lain).
- Selain itu, representasi teks dari nilai konstan bisa bergantung kepada spesifikasi fungsi konversi tipe (termasuk parser atau renderer untuk suatu bahasa yang ditetapkan sebagai argumen masukan atau sebagai bagian dari lingkungan runtime yang diberikan secara eksplisit sebagai argumen tambahan, atau secara implisit dengan beberapa nilai baku).