Абстрактна Вікіпедія/Оновлення/2020-11-25
◀ | Оновлення Абстрактної Вікіпедії | ▶ |
- Кожен Об'єкт у Вікіфункціях буде ідентифікований за допомогою його ідентифікатора Z-ID, подібно до ідентифікаторів Q-ID та L-ID відповідно для Елементів та Лексем на Вікіданих.
Хоча більшість Z-ID будуть просто присвоюватися послідовно, ми плануємо мати кілька навмисно обраних Z-ID, як і Q-ID та L-ID. На відміну від Q-ID та L-ID, їхня ціль полягає не в тому, щоб вони були “великодніми яйцями”, а навпаки, були мнемонічними та допомагали запам’ятовувати їх.
Ні, ні, не хвилюйтеся — ви не повинні пам’ятати всі Z-ID, які вам треба використовувати. Інтерфейс повинен приховувати більшість Z-ID. Але іноді, або в ранніх версіях системи, коли інтерфейс ще недостатньо повноцінний, або пізніше в деяких завданнях налагодження, або під час перевірки чи створення деяких повідомлень on the wire, може бути корисним постійне використання основних Z-ID, які трохи легше згадати, ніж цілком довільні призначення.
Запрошую всіх вас приєднатися до нас у пошуку хороших Z-ID для основних Об’єктів Вікіфункцій. Ми будемо об'єднувати рішення на цій сторінці: Зарезервовані Z-ідентифікатори.
Сторінка обговорює та перераховує:
- Чи повинен бути закріплений суміжний блок Z-ID, напр. усі Z-ідентифікатори з чотирма цифрами або менше (а може, трьома або менше? Тільки двома або одною?)
- Які Z-ID треба зарезервувати?
- Для чого повинні бути ці Z-ID?
- Які Об’єкти повинні отримувати попередньо призначені Z-ID?
Here are a few thoughts that went with the current status of assigned Z-IDs in the Function Model (but you will see that the page above does not always agree with these thoughts).
We tried to minimize the number of reserved Z-IDs, and just reserve the Z-IDs from Z1
to Z99
. That’s tight. By extending them to Z999
or Z9999
we would have more space.
The Z-IDs from Z1
to Z25
were mostly for the basic types of the Function Model. These include Object, Type, Function, Implementation, Error, String, List, etc.
After that we thought about assigning a block of Z-IDs for the fifteen or so initial Functions, and, twenty above them, their respective initial Builtin Implementations, e.g. having “if” be Z31
and the builtin implementation of “if” be Z51
.
Besides that, we need a number of reserved Z-IDs for certain error codes, for languages, and for the Boolean values True and False.
Ось кілька думок про те, як деяким з основних Типів були присвоєні Z-ID — здебільшого на основі довжини англійської назви:
Z1
: Object (Type) : бо все починається тут.Z2
: Persistent object (Type) : все у вікі — це Z2, тому в нього такий низький Z-ID.Z3
: Key (Type) : оскільки слово "key" має три літери англійською мовою.Z4
: Type (Type) : бо слово “type” має чотири літери англійською мовою.Z5
: Error (Type) : бо слово “error” має п'ять літер англійською мовою.Z6
: String (Type) : because the word “string” has six letters in English.Z7
: Function call (Type) : because function calls are the main 'magic of the system, and 7 is a magic number. It is also close toZ8
.Z8
: Function (generic type, thus technically a function) : because function has eight letters in English.Z9
: Reference (Type) : because the word reference has nine letters in English.Z10
: List (generic type, thus technically a function) : because it's the first number that has two digits.Z11
: Monolingual text (Type) : because it is just one language, and there's a one in the name.Z12
: Multilingual text (Type) : because it's an extension ofZ11
.Z14
: Implementation (Type) : because the word implementation has fourteen letters in English.Z20
: Tester (Type) : because 20/20 is perfect vision, and tests make errors visible.Z99
: Quote (Type)
Another basic Type that still needs an assignment is Boolean, and possibly others.
Перелік запропонованих на сьогодні п’ятнадцяти функцій:
- if: Boolean, T, T ➝ T
- value by key: Key reference, T ➝ U
- reify: Any ➝ List(Pair(Key reference, Any))
- abstract: List(Pair(Key reference, Any)) ➝ Any
- head: List(T) ➝ T
- tail: List(T) ➝ T
- empty: List(T) ➝ Boolean
- cons: T, List(T) ➝ List(T)
- unquote: Quote ➝ Any
На додаток до цього нам також потрібна функція валідатора для більшості основних Типів. Існує завдання щодо основних Функцій і Типів на Фабрикаторі: T261474.
These are all just suggestions, and we are happy to see them discussed on wiki. Please make further suggestions for reserved Z-IDs there, either for mnemonic purposes or also for genuine easter eggs. I am sure that you will come up with much better and more interesting suggestions than we are. So, let us know your ideas and see you next week with some news.