Làm thế nào là toán tử xx trong Raku có thể trì hoãn việc đánh giá toán hạng mã bên trái của nó?


9

Toán tử 'xx' thú vị ở chỗ:

(^100).pick xx 10

tạo danh sách 10 Int ngẫu nhiên thay vì một Int ngẫu nhiên lặp lại 10 lần dưới dạng danh sách.

Là toán tử xử lý như một trường hợp đặc biệt bởi trình biên dịch? Hay nó thực sự chỉ là một phụ khác mà chúng ta có thể xác định chính mình? (Nếu vậy, tôi rất muốn biết làm thế nào ...)

Cảm ơn

Câu trả lời:


10

Vâng, đây là một trong một loạt các toán tử hiện đang tồn tại dưới dạng các hình thức đặc biệt trong trình biên dịch. Các ví dụ khác bao gồm ||&& , chỉ đánh giá phía bên tay phải tùy thuộc vào quá trình boolization của phía bên trái.

Hiện tại, không có cách nào để tự xác định một toán tử như vậy (hoặc ít nhất, không phải là một toán tử được hỗ trợ chính thức; nếu chuẩn bị sửa đổi nội bộ trình biên dịch, tất cả mọi thứ đều có thể). Tuy nhiên, macro - được lên kế hoạch cho phiên bản ngôn ngữ Raku chính tiếp theo - sẽ cho phép điều này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.