추상 위키백과/업데이트/2020-11-25
◀ | 추상 위키백과 업데이트 | ▶ |
- 위키함수의 모든 객체는 각 항목 및 어휘소에 대한 위키데이터의 Q-ID 및 L-ID와 유사한 Z-ID로 식별됩니다.
대부분의 Z-ID는 단순히 연속적으로 할당되지만, Q-ID 및 L-ID와 마찬가지로 의도적으로 선택한 Z-ID를 몇 개 가질 계획입니다. Q-ID 및 L-ID와 달리 이들의 목표는 "이스터 에그(Easter eggs)"가 되는 것이 아니라 오히려 니모닉(mnemonic)이 되고 기억하는 데 도움이 되는 것입니다.
아닙니다, 아닙니다. 걱정하지 마세요 — 사용해야하는 모든 Z-ID를 기억하면 안됩니다. 인터페이스는 대부분의 Z-ID를 숨겨야합니다. 그러나 때로는 초기 버전의 시스템에서 인터페이스가 아직 충분히 완료되지 않았거나 나중에 일부 디버깅 작업에서 또는 유선에서 일부 메시지를 검사하거나 생성할 때 핵심 Z-ID가 항상있는 것이 도움이 될 수 있습니다. 완전히 임의적인 할당보다 기억하기가 약간 쉽습니다.
위키함수의 핵심 객체에 대한 좋은 Z-ID를 찾는 데 여러분 모두를 초대합니다. 이 페이지에서 솔루션을 통합할 것입니다: 예약 된 Z-ID.
이 페이지는 다음을 설명하고 나열합니다:
- 예약 된 Z-ID의 연속 블록이 있어야합니다. 4자리 이하의 모든 Z-ID(또는 3개 이하? 2개 또는 1개?)
- 어떤 Z-ID를 예약해야합니까?
- 이 Z-ID는 무엇을 의미해야합니까?
- 사전 할당된 Z-ID를 받아야하는 객체는 무엇입니까?
다음은 함수 모델에서 할당된 Z-ID의 현재 상태와 관련된 몇 가지 생각입니다(그러나 위 페이지가 항상 이러한 생각과 일치하지는 않음을 알 수 있습니다).
예약된 Z-ID의 수를 최소화하고 Z-ID를 Z1
에서 Z99
로 예약했습니다. 촘촘합니다. Z999
또는 Z9999
로 확장하면 더 많은 공간을 확보할 수 있습니다.
Z1
에서 Z25
까지의 Z-ID는 대부분 함수 모델의 기본 유형을 위한 것입니다. 여기에는 객체와 유형, 함수, 구현, 오류, 문자열, 리스트 등이 포함됩니다.
그 후 15개 정도의 초기 함수에 Z-ID 블록을 할당하는 방법에 대해 생각했고, 그 위에 20개는 각각의 초기 내장 구현입니다. 예를 들어, "if"는 Z31
이고 "if"의 내장 구현은 Z51
입니다.
그 외에도 특정 오류 코드, 언어 및 불리언 값 참(True) 및 거짓(False)에 대해 여러 예약된 Z-ID가 필요합니다.
다음은 기본 유형 중 일부에 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) : "문자열(string)"이라는 단어에는 영어로 된 여섯 글자가 있기 때문입니다.Z7
: Function call (Type) : 함수 호출은 '시스템의 마법'이고 7은 마법의 숫자이기 때문입니다. 또한Z8
에 가깝습니다.Z8
: Function (제너릭 유형, 따라서 기술적으로 함수) : 함수(function)에는 영어로 된 8개의 문자가 있기 때문입니다.Z9
: Reference (Type) : 참조(reference)라는 단어에는 영어로 된 9개의 글자가 있습니다.Z10
: List (제너릭 유형, 따라서 기술적으로 함수) : 두 자리가 있는 첫 번째 숫자이기 때문입니다.Z11
: Monolingual text (Type) : 그것은 단지 하나의 언어이고 이름에 하나가 있기 때문입니다.Z12
: Multilingual text (Type) :Z11
의 연장이기 때문입니다.Z14
: Implementation (Type) : 구현(implementation)이라는 단어에는 영어로 된 14개의 문자가 있기 때문입니다.Z20
: Tester (Type) : 20/20은 완벽한 비전이고 테스트는 오류를 가시화하기 때문입니다.Z99
: Quote (Type)
여전히 할당이 필요한 또 다른 기본 유형은 부울란 그리고 나머지가 가능합니다.
현재 제안 된 15개의 초기 함수 목록:
- 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
그 외에도 대부분의 기본 유형에 대한 검증자 함수가 필요합니다. 파브리케이터(Phabricator)의 기본 함수 및 유형에 대한 작업이 있습니다: T261474.
이것들은 모두 제안에 불과하며 위키에서 논의를 보게되어 기쁩니다. 니모닉 또는 진짜 이스터 에그를 위해 예약된 Z-ID에 대한 추가 제안을 하세요. 저는 여러분이 우리보다 훨씬 더 좋고 더 흥미로운 제안을 내놓을 것이라고 확신합니다. 그러니 여러분의 아이디어를 알려 주시고 다음 주에 몇 가지 소식으로 만나요.