호출 식

호출 식은 프로그래밍 언어의 중요한 부분입니다. 부분 애플리케이션과 마찬가지로 반환된 값이 적합한 형식인 경우 연산 및 함수 호출은 어디서나 식으로 사용할 수 있습니다.

이 형식의 호출 작업의 유용성은 주로 디버깅에 있으며 이러한 작업 호출은 모든 Q# 프로그램에서 가장 일반적인 구문 중 하나입니다. 동시에 연산은 다른 연산 내에서만 호출할 수 있으며, 함수 내에서는 호출할 수 없습니다. 자세한 내용은 큐비트도 참조하세요.

호출 가능 개체가 일류 값인 경우 호출 식은 고유한 전용 언어 구문을 사용할 수 있을 만큼 일반적이지 않은 패턴을 지원하는 일반적인 방법이거나 다른 이유로 전용 구문이 도입되지 않은 일반적인 방법입니다. 이러한 용도를 제공하는 라이브러리 메서드의 몇 가지 예제가 있습니다. ApplyIf는 설정하는 클래식 비트에 대한 조건부 연산을 호출하고, ApplyToEach는 지정된 연산을 배열의 각 요소에 적용하며, ApplyWithInputTransformation은 다음 샘플과 같습니다.

    operation ApplyWithInputTransformation<'TArg, 'TIn>(
        fn : 'TIn -> 'TArg,
        op : 'TArg => Unit,
        input : 'TIn
    ) : Unit {

        op(fn(input));
    }

ApplyWithInputTransformationfn 함수, op 연산 및 input 값을 인수로 사용한 다음, 함수에서 반환된 값을 사용하여 지정된 연산을 호출하기 전에 지정된 함수를 입력에 적용합니다.

컴파일러에서 특수화를 자동으로 생성하여 특정 함자를 지원하려면 일반적으로 호출된 연산에서 이러한 함자도 지원해야 합니다. 두 가지 예외는 항상 Adjoint 함자를 지원해야 하지만 Controlled 함자를 지원할 필요가 없는 결합의 외부 블록 호출과 개별 호출에 대한 추가 요구 사항을 적용하지 않고 Adjoint 함자를 지원하는 자기 수반 연산입니다.