추상 위키백과/함수 평가자 호출

This page is a translated version of the page Abstract Wikipedia/Function evaluator call and the translation is 100% complete.

메일링 리스트를 통한 추상 위키백과 IRC의 추상 위키백과 텔레그램의 위키함수 마스토돈의 위키함수 트위터의 위키함수 페이스북의 위키함수 유튜브의 위키함수 위키함수 웹사이트 Translate

이것은 함수 평가자에 관한 호출 예제입니다.

가정은 함수 오케스트레이터만 함수 평가자를 직접 호출한다는 것입니다.

함수 평가자의 목표는 다른 데이터 소스, 데이터베이스 또는 서비스에 대한 호출없이 실행할 수 있도록 하는 것입니다.

오케스트레이터와 평가자가 함께 작동하는 방식에 대한 아키텍처 스케치를 참조하세요.

{
 "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/에러를 반환합니다.

같이 보기