Tôi đang viết một trình phân tích cú pháp xml-conduit và tôi thích cú pháp ứng dụng đơn thuần hơn. Với rất nhiều đối số để kết hợp, tôi nhận được phần nào bị mất trong ứng dụng mặc dù. Vấn đề hiện tại của tôi được đưa ra 8 đối số, tôi chỉ muốn sử dụng thứ 4 và thứ 6 để xây dựng kết quả.Bỏ qua các đối số trong Control.Applicative
Cách duy nhất tôi có thể làm cho nó hoạt động như sau; nên có sự sắp xếp ưa thích của các ngôi sao cho một giải pháp phẳng mặc dù:
import Control.Applicative
a1 :: Applicative Text
a2 :: Applicative Text
a3 :: Applicative Text
a4 :: Applicative Text
a5 :: Applicative Text
a6 :: Applicative Text
a7 :: Applicative Text
a8 :: Applicative Text
data Data = Data Text Text
f :: Text -> Text -> Data
parser :: Applicative Data
parser = a1 *> a2 *> a3 *> (f <$> a4 <* a5 <*> a6) <* a7 <* a8
Bất kỳ cách nào để làm tương tự trong biểu mẫu mà không có dấu ngoặc đơn?
parser = f <$> a1 ?? a2 ?? a3 ?? a4 ?? a5 ?? a6 ?? a7 ?? a8
Bạn có thể muốn xem [dấu ngoặc đơn] (https://personal.cis.strath.ac.uk/conor.mcbride/pub/she/idiom.html), đây là một số đường cú pháp đẹp để sử dụng các ứng dụng theo cách này. Thật không may, nó đòi hỏi phải sử dụng một bộ tiền xử lý, nhưng nó vẫn rất mát mẻ. –
@TikhonJelvis Cảm ơn, có vẻ thú vị. –