추상 위키백과/함수 평가자 호출
- 이것은 함수 평가자에 관한 호출 예제입니다.
가정은 함수 오케스트레이터만 함수 평가자를 직접 호출한다는 것입니다.
함수 평가자의 목표는 다른 데이터 소스, 데이터베이스 또는 서비스에 대한 호출없이 실행할 수 있도록 하는 것입니다.
오케스트레이터와 평가자가 함께 작동하는 방식에 대한 아키텍처 스케치를 참조하세요.
{
"type": "Function call",
"function": {
"type": "Function",
"arguments": [
{
"type": "Argument declaration",
"argument type": "Positive integer",
"key id": "Z144K1",
"label": {
"type": "Multilingual text",
"texts": [
{
"type": "Monolingual text",
"language": "English",
"text": "left"
}
]
}
},
{
"type": "Argument declaration",
"argument type": "Positive integer",
"key id": "Z144K2",
"label": {
"type": "Multilingual text",
"texts": [
{
"type": "Monolingual text",
"language": "English",
"text": "right"
}
]
}
}
],
"return type": "Positive integer",
"testers": [],
"implementation": [
{
"type": "implementation",
"code": {
"type": "Code",
"language": "Javascript",
"code": "Z144K0 = Z144K1 + Z144K2"
}
}
],
"identity": "add"
},
"left": {
"type": "Positive integer",
"value": "2"
},
"right": {
"type": "Positive integer",
"value": "2"
}
}
|
{
"Z1K1": "Z7",
"Z7K1": {
"Z1K1": "Z8",
"Z8K1": [
{
"Z1K1": "Z17",
"Z17K1": "Z70",
"Z17K2": "Z144K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
{
"Z1K1": "Z11",
"Z11K1": "Z251",
"Z11K2": "left"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z70",
"Z17K2": "Z144K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
{
"Z1K1": "Z11",
"Z11K1": "Z251",
"Z11K2": "right"
}
]
}
}
],
"Z8K2": "Z70",
"Z8K3": [],
"Z8K4": [
{
"Z1K1": "Z14",
"Z14K3": {
"Z1K1": "Z16",
"Z16K1": "Z301",
"Z16K2": "Z144K0 = Z144K1 + Z144K2"
}
}
],
"Z8K5": "Z144"
},
"Z144K1": {
"Z1K1": "Z70",
"Z70K1": "2"
},
"Z144K2": {
"Z1K1": "Z70",
"Z70K1": "2"
}
}
|
결과는 다음과 같아야 합니다:
{
"type": "positive integer",
"value": "4"
}
|
{
"Z1K1": "Z70",
"Z70K1": "4"
}
|
함수 평가자를 호출할 때마다 다음 조건이 충족되어야합니다:
- 유효한 ZObject여야 합니다;
- Z7/함수 호출 유형이어야 합니다;
- Z7K1/함수는 Z8/함수에 대한 참조가 아니라 리터럴 Z8/함수여야 합니다.
- 모든 Z17K1/인수 유형은 함수 평가자가 알고 있는 유형이어야합니다;
- Z8K2/반환 유형은 함수 평가자가 알고있는 유형이어야합니다;
- Z8K3/테스터는 빈 목록이어야합니다;
- Z8K4/구현은 Z14/구현 유형의 정확히 하나의 요소가 있는 목록이어야합니다;
- Z14/구현의 Z14K3/코드 키만 제공해야합니다;
- Z14K3/코드는 Z16K1/언어가 Z301/자바스크립트(자바스크립트의 함수 평가자 용도. 우리는 또한 다른 언어로 함수 평가자를 만들 것이며 여기서 값은 해당 언어의 값이어야합니다)인 Z16/코드를 가리켜야합니다;
- 주어진 모든 인수는 리터럴이어야합니다(이 경우, Z144K1/왼쪽 및 Z144K2/오른쪽 값).
함수 호출이 주어진 불변성을 충족하지 못하는 경우(또는 다른 문제가 발생하는 경우) Z5/에러를 반환합니다.