Giả sử rằng Parser x
là trình phân tích cú pháp phân tích cú pháp x
. Trình phân tích cú pháp này có thể sở hữu bộ kết hợp many
, phân tích cú pháp 0 hoặc nhiều lần xuất hiện của một thứ gì đó (dừng khi trình phân tích cú pháp mục không thành công).Vòng lặp có điều kiện trong hàm Functor
Tôi có thể xem cách người ta có thể thực hiện điều đó nếu Parser
tạo thành một đơn vị. Tôi không thể tìm ra cách để làm điều đó nếu Parser
chỉ là một Functor ứng dụng. Dường như không có cách nào để kiểm tra kết quả trước đó và quyết định làm gì tiếp theo (chính xác khái niệm mà các monads thêm). Tôi đang thiếu gì?
Đối với tôi, điểm mấu chốt là "quyết định" được thực hiện bằng cách sử dụng '<|>'. Tôi không biết tại sao tôi không tìm ra điều đó ... – MathematicalOrchid