Trong Edit distance: Ignore start/end, tôi đã cung cấp giải pháp Perl 6 cho một vấn đề phù hợp mờ mờ. Tôi đã có một ngữ pháp như thế này (mặc dù có lẽ tôi đã cải thiện nó sau 3 Chỉnh sửa #):Làm cách nào tôi có thể chuyển đối số cho ngữ pháp Perl 6?
grammar NString {
regex n-chars { [<.ignore>* \w]**4 }
regex ignore { \s }
}
hiểu theo nghĩa đen 4
chính là chiều dài của chuỗi mục tiêu trong ví dụ. Nhưng vấn đề tiếp theo có thể là một số chiều dài khác. Vậy làm cách nào tôi có thể nói ngữ pháp bao lâu tôi muốn kết hợp đó?
Nó hy vọng sẽ được thông qua một 'Capture', và nếu nó không nhận được một sau đó gọi coercer' .Capture'. Một 'List' sẽ coerce thành một' Capture' với các phần tử danh sách như là các đối số vị trí. Một 'Int' không biến thành bất kỳ thứ gì hữu ích (nó rơi trở lại' Mu.Capture', lấy các thuộc tính công khai và sử dụng các tham số đó như các tham số có tên; một 'Int' không có thuộc tính công khai). –
Làm thế nào để những biến đó thành hai đối số? –
tôi hy vọng rằng đề cập đến invocant, tức là "tự" đối số, như regexes trong một lớp học là phương pháp. – timotimo