Rakuのxx演算子は、左側のコードオペランドの評価をどのように遅延させることができますか?


9

'xx'演算子は、次の点で興味深いです。

(^100).pick xx 10

リストとして10回繰り返される1つのランダムIntではなく、10個のランダムIntのリストを生成します。

オペレーターはコンパイラーによって特殊なケースとして処理されますか?それとも私たちが自分自身を定義できるのは本当に別のサブですか?(もしそうなら、私は方法を知るのに非常に興味があります...)

ありがとう

回答:


10

はい、これは現在コンパイラーで特殊な形式として存在する一連の演算子の1つです。他の例には||and &&があり、左側のブール化に応じて右側のみが評価されます。

現在、このような演算子を自分で定義する方法はありません(少なくとも、公式にサポートされている演算子ではありません。コンパイラの内部をいじくり回す準備ができていれば、すべてが可能です)。ただし、次の主要なRaku言語バージョンで計画されているマクロにより、これが可能になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.