سؤال

هل هناك طريقة للاستفادة التطبيقية من <$> و <*> تبدو لطيفة عند التعامل مع مشغلي infix؟اعتقد انه

((++) <$> a <*> ((++) <$> b <*> c ))

يبدو أكثر تشوشًا بعد ذلك

a ++ b ++ c

لذلك أتساءل عما إذا كانت هناك طريقة أجمل.

هل كانت مفيدة؟

المحلول

(<++>) = liftA2 (++)
a <++> b <++> c

أو

liftA2 (++) a $ liftA2 (++) b c

نصائح أخرى

انظر توماس ديفي InfixApplicative الحزمة، والتي توفر خدعة نحوية عامة، بدلاً من الاضطرار إلى تحديد مشغل جديد لكل عملية رفع.

هي يتيح لك الكتابة

(|a ++ (|b ++ c|)|)

إذا كان هذا أي فائدة.بالطبع، هناك بعض النفقات الإضافية لإنشاء طبقة المعالجة المسبقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top