式
基本的に、Q# の式は値リテラルと識別子のどちらかで、識別子は、ローカルに宣言された変数か、またはグローバルに宣言された呼び出し可能型を参照できます (現在、Q# にグローバル定数はありません)。 これらを演算子、連結子、修飾子を使って組み合わせることで、さまざまな式を作ることができます。
ある意味で "演算子" は、特定の呼び出し可能型の専用の構文に過ぎません。
Q# にはまだ、バッキング呼び出し可能型宣言の形式で各演算子の機能を正式にキャプチャできるだけの表現力は ありませんが、この点は将来改善される予定です。
"修飾子" は、特定の式にのみ適用できます。 識別子、配列項目のアクセス式、名前付き項目のアクセス式、単一の項目タプルと同じかっこ内の式 (こちらのセクションを参照) のいずれかである式に対して、1 つまたは複数の修飾子を適用できます。 これらは式の前に置く (前置) か、式の後に置く (後置) ことができます。 したがって、これらは関数や演算の呼び出しよりも結合力が強く、各種の項目アクセスよりは結合力が弱い特殊な単項演算子です。 具体的には、ファンクターは前置修飾子であるのに対し、アンラップ演算子は後置修飾子となります。
関数や演算の呼び出し、そして項目アクセスも、修飾子と同様、その適用位置に関して同じ制限を受ける特殊な種類の演算子と考えることができます。これらを "連結子" と呼びます。
優先順位と結合規則についてのセクションに、すべての演算子の一覧、およびすべての修飾子と連結子の一覧が網羅されています。