'da argümanları görmezden geliyorum Bir xml-conduit ayrıştırıcısı yazıyorum ve monadik için uygulama sözdizimini tercih ediyorum. Birleştirilecek pek çok argüman olsa da, uygulamada bir şekilde kaybolmuş olurum. Benim şimdiki problemim 8 argüman verildi, ben sadece sonucu oluşturmak için 4. ve 6. kullanın.Control.Applicative
Çalışmamı sağlamanın tek yolu şuydu;
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
parantez olmadan formda aynı şeyi herhangi bir şekilde: gerçi düz çözüm yıldızlı fantezi düzenleme olmalıdır? (*>)
kullanmayın, kullanmak (<$)
:
parser = f <$> a1 ?? a2 ?? a3 ?? a4 ?? a5 ?? a6 ?? a7 ?? a8
Bunu [deyim parantez] kontrol etmek isteyebilirsiniz (https://personal.cis.strath.ac.uk/conor.mcbride/pub/she/idiom.html), bazı güzel sözdizimi şeker olan Bu şekilde uygulamaları kullanmak için. Ne yazık ki, bir ön işlemcinin kullanılmasını gerektiriyor, ama yine de çok havalı. –
@TikhonJelvis Teşekkürler, ilginç görünüyor. –